Git, CocoaPods, Xcode, Shell
[Git] Merge Conflict 해결 방법
jake-kim
2020. 11. 1. 22:46
Git Repostory가 아래와 같이 구성되어 있을 때,

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