글

라벨이 rebase인 게시물 표시

git rebase 도중 submodule이 conflict 났을때

문제 어느때와 같이 주기적으로 active된 branch를 master와 rebase 하던 도중 conflict가 났습니다. 뭐 별거 있겠어? 수정하고 add 하고 git rebase --continue 하면 되지.....라고 봤더니 submodule이 conflict 났습니다. (당황) 내 commit으로 이어가려고 하는데 git add고 뭐고 안됩니다. (당황2) 정보수집 여러가지 방법도 찾아보고 구글링도 해보았지만 해결을 하지 못했습니다. Submodule Conflicts while Rebasing 해결 결국은 가장 단순한 방법을 사용하기로 했습니다. 급하게 해결하느라 해당 로그를 캡쳐하지 못해서 글로만 설명하니 양해바랍니다. reset으로 양쪽에서 수정 제거(git reset HEAD <submodule directory>) conflict 제거(git checkout --<submodule directory>) conflict가 발생한 patch 내용 확인 해당 submodule directory에서 patch에 해당하는 commit 가져오기(cd <submodule directory>; git checkout <해쉬>) 메인에서 git add <submodule directory>  rebase 계속 진행(git rebase --continue) 특별한 방법이 있는지도 모르겠지만 오컴의 면도날이라고 이해하기 쉽고 단순한 방법을 조합한 해결책이 최고죠.

git rebase --onto 문제

git rebase를 주기적으로 하다가 흥미로운 문제가 발생했습니다. ------master------branch1-----branch2 이와같은 구조에서 branch2에서 branch1을 제거해야하는 상황이 발생했습니다. 즉 다음과 같은 그림으로 만들어아하는 상황입니다. ------master------branch1              `-----branch2 git rebase -i 와 rebase master 등등 여러가지를 해보았지만 전혀 해결할 수 없었습니다. 그러다 stackoverflow 에서 검색해서 겨우 알아낸 것은 전형적인 git rebase --onto 문제라는 것입니다. 다음과 같이 실행하면 해결됩니다. # rebase --onto $ git checkout master $ git rebase --onto master branch1 branch2 # branch2를 강제로 push $ git checkout branch2 $ git push origin branch2 --force 출처 : stackoverflow This is a classic case of rebase --onto

git rebase 혹은 git push 중 양쪽에서 수정(혹은 추가)이 수백개 났을때...

오래된 브랜치를 살리기 위해 git rebase를 열심히 했습니다. 그리고 git push <branch> 를 했더니.... # 다른 커밋이 각각 416개와 10개 있습니다. ... # 양쪽에서 수정: Makefile # 양쪽에서 추가: init.sh ... 416개라니...으악.... 이걸 언제 다 확인하고 수정후 git add를 한답니까...  일단 리모트 저장소를 살펴보니 해당 branch가 추가 commit이 없었던걸로 보아 특별한 문제 없이 제 commit을 사용하면 될것 같아서 방법을 찾아보았습니다. resolving-a-both-added-merge-conflict-in-git git checkout --ours src/MyFile.cs git checkout --theirs src/MyFile.cs 역시 스택오버플로우 형님들입니다. 방법은 알았으니 파일명만 따다가 --ours하고 add 해버리면 끝.

이 블로그의 인기 게시물

구글 시트에 여러 행 한번에 추가하기

WSL2 Ubuntu 20.04 및 네트워크 설정

우분투 terminator 에서 파일 경로 클릭시 vscode 에서 열기