command line 노트

base브런치와 conflict가 일어날 때

Jonchann 2020. 11. 19. 12:22

상황:

master브런치가 아니라 base브런치를 만들고 거기서 작업 브런치를 만들었다.

master에 병합할 것은 아니라 base브런치를 병합 목적지?로 하고 PR을 냈는데 작업 브런치에서 삭제한 파일이 conflict를 일으킨다며 "Can’t automatically merge"메시지가 나왔다.

 

해결:

이미 없어진 파일에 뭘 더 하라는 거지 싶지만 아래처럼 하면 해결할 수 있다.

1. 일단 base브런치를 pull 한다.

$ git pull origin base_branch_name

2. 그러면 에디터(나 같은 경우에는 PyCharm)에 ResolveConfilcts메뉴가 활성화되니 눌러서 merge를 진행한다.

여기서 병합 했으니까 다시 파일을 삭제하면 병합했다는 정보가 commit&push되지 않았기 때문에 다시 pull 할 때 아래와 같은 에러가 난다.

error: 병합 작업을 다 마치지 않았습니다 (MERGE_HEAD 파일이 있습니다).
힌트: 병합하기 전에 변경 사항을 커밋하십시오.
fatal: 병합을 마치지 못했기 때문에 끝납니다.

3. 그러니 병합을 마친 파일을 삭제하고 싶어도 일단 add&commit 한다.

4. 삭제하고 다시 add&commit 한다.

5. commit을 전부 push한다.