1016 일기

Woozy9ucci·2022년 10월 16일

깃허브 merge 중 내가 만들지 않은 main브랜치가 있고
내가 로컬에서 push한 master브랜치가 있었는데
main브랜치와 master브랜치가 머지 되지 않음.
검색을 해보니
Readme파일을 추가하여 생성할 경우 이도 커밋으로 보기 때문에
원격 저장소에 main브랜치가 디폴트로 생성됨.
그러나 로컬에서는 기본적으로 master 브랜치가 생성됨으로
우리가 작업할 때 master브랜치나 하위브랜치에 push를 하게됨.
때문에 둘의 커밋 이력이 완전히 달라 머지가 되지 않는 것이라고 함.
(따라서 원격저장소의 default branch를 master로 설정해도 위와같음)
해결방법으로는
0. 위와같은 상황이 이미 발생했다면 원격 저장소 브랜치 설정에서 default브랜치를 변경한다(main -> master)
1. 원격저장소 생성 시 readme파일을 추가하지 않는다.
2. 원격저장소와 로컬저장소의 브랜치 이름이 같다면 git push -f origin master 로 강제 푸쉬를 할 수 있다.
3. readme파일 추가시 생성되는 브랜치이름을 master로 설정 하거나, 로컬에서 생성되는 기본 브랜치의 이름이 main일 수 있거나(명령어가 있지만 업데이트로 해결할 수 있는지는 모르겠음)인데
일단 전자로 진행하여 2번을 적용했음.
결론 - master/slave가 노예 어쩌구 문제로 main으로 바뀌었다는데 master이름을 사용해도 된다면
3 0번 해결책이 간단할 수 있고
3번의 후자에 업데이트 등을 통한 기본 브랜치 이름이 main이 될 수 있다면 괜찮을 것 같음.

이미 생성되어있었던 원격저장소(master브랜치가 default였던) 경우
원격저장소에서는 브랜치이름을 바꾸고
로컬의 default branch를 바꾸려면 다음을 참고하자
git branch -m master main
git fetch origin
git branch -u origin/main main
(로컬 브랜치 이름변경 master -> main)
(덮어쓰기 (원격 디폴트 브랜치가 main인 상황인듯? main))
(로컬의 main과 원격저장소의 main브랜치 연결)

(추가)
삭제 -> git branch -d 브랜치이름
브랜치 이름 변경 -> git branch -m
브랜치 연결 -> git branch -u 브랜치 이름
로컬 브랜치 생성 -> git branch 브랜치 이름

원격저장소 연결 해제 -> git remote remover 원격이름 (ex-> origin1)

git push -u origin master : 현재의 로컬 저장소 master 브렌치와 원격 저장소의 origin/master 브렌치를 연결시킬 때 한 번만 사용한다. 이후부터는 git push만 해도 된다.

git clone의 함축의미, 브랜치 로컬/원격 기초 도움될 자료
https://eunhee-programming.tistory.com/m/261
되돌리기(revert 등)
https://leechamin.tistory.com/m/410

ex)
$git checkout -t <원격 저장소에 있는 branch 이름>

$git checkout -b <원하는 branch 이름> <원격 저장소에 있는 branch 이름>

$git checkout <로컬 저장소에 있는 branch 이름>

git 커밋, 스테이징 되돌리기
https://developer-ankiwoong.tistory.com/773

0개의 댓글