git rebase 도중 submodule이 conflict 났을때

문제

어느때와 같이 주기적으로 active된 branch를 master와 rebase 하던 도중 conflict가 났습니다. 뭐 별거 있겠어? 수정하고 add 하고 git rebase --continue 하면 되지.....라고 봤더니 submodule이 conflict 났습니다. (당황) 내 commit으로 이어가려고 하는데 git add고 뭐고 안됩니다. (당황2)

정보수집

여러가지 방법도 찾아보고 구글링도 해보았지만 해결을 하지 못했습니다.
Submodule Conflicts while Rebasing

해결

결국은 가장 단순한 방법을 사용하기로 했습니다. 급하게 해결하느라 해당 로그를 캡쳐하지 못해서 글로만 설명하니 양해바랍니다.

  1. reset으로 양쪽에서 수정 제거(git reset HEAD <submodule directory>)
  2. conflict 제거(git checkout --<submodule directory>)
  3. conflict가 발생한 patch 내용 확인
  4. 해당 submodule directory에서 patch에 해당하는 commit 가져오기(cd <submodule directory>; git checkout <해쉬>)
  5. 메인에서 git add <submodule directory> 
  6. rebase 계속 진행(git rebase --continue)

특별한 방법이 있는지도 모르겠지만 오컴의 면도날이라고 이해하기 쉽고 단순한 방법을 조합한 해결책이 최고죠.

댓글

이 블로그의 인기 게시물

WSL2 Ubuntu 20.04 및 네트워크 설정

리눅스 멀티코어를 사용하는 tar 압축/해제

git pull 을 했더니 branch가 갈라지는 경우