[iOS] xcode에서 Merge Conflict 해결하기
협업 프로젝트를 하다 보면 merge conflict 날 때가 종종 있을 것이다..
내가 이때까지 경험한 프로젝트는 따로 작업을 한다던가, 혼자 미니 프로젝트를 하는 경우가 많았어서 merge conflict가 가끔가다 나도
그냥 파일을 삭제해버리고 다시 레포에서 clone을 받아오곤 했다....
하지만.. 더는 그럴 수 없기에 이번 기회로 제대로 병합 충돌을 해결해보고자 한다.
피할 수 없으면 즐겨라......
우선 병합 충돌이 생기면 이런 경고창이 뜨면서 작업하던 프로젝트 파일이 열리질 않는다
당황하지 말고..
파일에서 xcode에 실행되는 파일에 패키지 내용 보기를 눌러준다.
그럼 project.pbxproj 파일이 생성되는데 이 파일을 눌러서 수동 병합을 진행해주어야 한다.
Project.pbxproj 파일은 실제 프로젝트의 설정들이 모두 담겨있는 파일이다. 이 파일을 열어서 해석하려 해도 거의 바이너리 파일처럼 구성되어 있어서 주석처리되어 있는 어떤 파일에 변경이 생겼는지에 대한 부분만 참고하는 게 좋을 듯하다.
project.pbxproj을
<<<<<<<HEAD
내가 수정했거나, 다른 팀원이 수정했던 부분들 (1)
=======
최신화된 main이 가지고 있던 부분들 (2)
>>>>>>>
이 부분에 관해서 최신화된 main 코드가 아닌 내가 수정한 파일로 저장하고 싶다면 충돌난 부분에서 (1) 번을 제외하고 모두 날려버리면 된다.
즉 xcode 입장에서는 이렇게 보여줄 테니 네가 직접 수정해봐 하는 식이다.
이렇게 하나하나 수동 병합을 해주면 끝나는 줄 알았지만 project.pbxproj에서 수동 병합을 해주고 xcode를 열면 파일이 열리면서
코드에도 똑같이
<<<<<<<HEAD
내가 수정했거나, 다른 팀원이 수정했던 부분들 (1)
=======
최신화된 main이 가지고 있던 부분들 (2)
>>>>>>>
이 모양이 나오면서.. 수정하게 되어 있으므로 xcode에서도 동일한 방법으로 수정해 주고 저장하면 끝!!!!!!!
해결방법
1. 프로젝트 파일에서 패키지 내용 보기를 눌러서 project.pbxproj 파일 생성하기
2. project.pbxproj 파일 열어서 직접 병합
3. 그러면 xcode에서 merge conflict 나서 안 들어가졌던 파일 열림
4. 그 코드에서도 직접 병합해 주면 끝.