팀원들과 협업 중 다른 팀원이 메인 브랜치로 PR을 날리는 중에 merge conflict
가 발생했다.
대충 너무 복잡해서 웹에서 수정할 수 없으니 GitHub Desktop이나 CLI에서 수정하라는 경고문이 나왔고...
내 로컬에 팀원의 브랜치를 가져와서, 직접 conflict를 해결하기로 했다.
이를 위해 원격 브랜치를 로컬로 가져오는 방법을 알아보았고, 깔끔하게 해결 후 merge 성공!
git remote update
git branch -r # 원격 브랜치 확인
git branch -a # 모든 브랜치 확인
우선 원격 저장소에 있는 브랜치들을 로컬 저장소에 업데이트 해야한다. 바로 클론이 되는 건 아니고, 목록을 업데이트 하는 것이라고 생각하면 된다.
git checkout -t [원격 브랜치]
-t
옵션은 로컬에서 원격 브랜치를 tracking 하겠다는 의미이다. 브랜치 이름은 원격과 같은 이름으로 생성된다.
git checkout -b [생성할 브랜치] [원격 브랜치]
만약 로컬 브랜치 이름을 원격과 다르게 설정하고 싶다면 위 명령어를 사용하자.
Git GUI 툴을 이용하면 위 과정을 간단히 클릭 한번으로 해결할 수 있다.
내가 사용하는 툴은 Fork
인데, origin 브랜치를 더블클릭하니까 바로 내 로컬에 트랙킹이 되었다..😅
여담으로 이번 프로젝트에서 Fork
를 아주아주 잘 활용할 수 있었다. 특히 좋았던 점은! 변경된 파일의 일부분만 Staging 하는 기능이었다.
팀원들과 코드 포맷팅이 다를 경우 저장만 해도 파일 전체가 변경될 때가 있다. 이럴 때 Fork 등 GUI 툴의 선택적 Staging
기능을 사용하면, 원하는 부분만 Staging Area로 옮길 수 있다.
이거 정말 꿀기능! 다음 프로젝트 때는 팀원들에게도 알려줘야겠다.