관리 메뉴

김종권의 iOS 앱 개발 알아가기

[Git] Merge Conflict 해결 방법 본문

Git, CocoaPods, Xcode, Shell

[Git] Merge Conflict 해결 방법

jake-kim 2020. 11. 1. 22:46

Git Repostory가 아래와 같이 구성되어 있을 때,

출처: https://woowabros.github.io/experience/2017/10/30/baemin-mobile-git-branch-strategy.html

Merge Conflict해결 원리

  • conflict가 발생한 Upstream의 브랜치를 로컬에 pull하여 로컬에서 해결하는 방식
  • 로컬에서 conflict가 난 곳을 확인하여 accept하면서 merge (merge conflict해결)
  • 로컬에서 최종적으로 merge된 브랜치를 push

방법

 

  • conflict가 발생한 상대방의 브랜치(= Upstream의 develop 브랜치)를,  자신의 Local Repository의 develop에 pull
  • conflict가 발생한 자신의 브랜치로 check out한 다음, 자신의 develop브랜치로 rebase or merge
  • merge conflict난 곳을 해결 (accept or deny) - 맥북의 경우 vscode에 conflict난 파일을 열으면, 어떤 부분을 accept할지 쉽게 선택 가능

 

  • 해결된 브랜치 push

Conflict 해결 중 실패한 경우 되돌아 가는 방법

소스트리와 같은 경우, conflict해결 로그 중간이 안찍히는 경우가 존재하므로 terminal창에서 해결

  • 커밋번호 확인: git reflog
  • 리셋: git reset --hard <커밋번호>
    • 예제) git reset —hard f6f9fd1d

 

Comments