Branch에서 작업을 완료하고 pull request를 할 때, VSCode extension으로 쉽게 conflict를 해결할 수 있다.
1. Github 상에서 PR 만들기
Compare & PR 버튼을 통해서 PR을 만들어준다. 이때 자동으로 PR이 되는 경우도 있지만, 보통 충돌이 난다.
내가 브랜치에서 작업한 것이 무엇인지 간단히 써두었다. 나는 혼자 작업하는 거라 짧게 썼지만, 팀 프로젝트면 자세히 쓰고 리뷰를 모두 통과해야 merge할 수 있다. 또 아래에는 충돌이 난 파일 리스트가 있는데, 이들을 모두 수정해줘야 merge가 가능하다.
2. Conflict를 보여주는 커맨드
git checkout main
git merge --no-ff <branch-name>
git push origin main
3. Resolve conflicts
위 커맨드를 실행하면 VScode에서 충돌이 난 모든 부분에 아래와 같은 옵션을 준다. 둘 중에 하나 또는 둘 다 accept할 수 있다. 클릭 한 번으로 실행이 되니 편하다.
모든 충돌은 extension의 source control 상에서 확인할 수 있다.
주의할 점은 VSCode는 텍스트 파일 (코드, 데이터 등) 에 대해서 위와 같이 클릭 한번으로 고를 수 있는 창을 보여주는 것이므로 VSCode 상에서 열리지 않는 데이터 형식이면 (이미지, 캐시 등) 직접 커맨드로 처리해야 된다. 레포지토리 안에 매번 실험할 때마다 달라지는 이미지가 있어서 PR 때마다 충돌을 유발하는데, 굳이 해결할 필요가 없는 충돌이라 처리하지 않고 바로 add해준다.
4. Commit & Merge
이렇게 해결한 충돌을 커밋해준다.
git add .
git commit -m <message>
마지막으로 아래 커맨드로 merge를 완료한다!
git push origin main
5. Delete branch
Merge가 잘 됐으면 알아서 PR이 닫히고 아래와 같이 branch를 삭제하는 버튼이 생긴다. 눌러주면 된다.
댓글