이 때, pull 해버리면 깔끔하게 한 줄로 정렬된 히스토리가 만들어지지 않는데다가, 이후 다른 사람들이 pull 혹은 cherry-pick하게 될 때 좀 더 귀찮아지는 경우가 생길 수 있다.
그러면, fetch를 하고 rebase를 해 보자.
$ git fetch $ git log ..FETCH_HEAD $ git rebase FETCH_HEAD $ git log --graph
대충 이렇게......
rebase 도중 conflict가 발생하게되면 물론 수정을 해야 하지만, 동일한 파일의 동일한 위치가 수정된 경우가 아니라면 별 문제 없이 rebase가 된다.
깔끔해진 히스토리에 만족스러워하며 push 해버리자.
개인적으로는 거의 항상 임시로 작업 브랜치를 만들어서 작업하면서 rebase, cherry-pick을 이용해 push하기 전에 정리를 하는 방법을 쓰지만, 간혹 작업 브랜치 만드는 걸 잊고 작업할 때가 있다. 위 방법으로 해결할 수도 있지만, 커밋이 여러 개여서 헷갈린다면...
$ git branch -m temp $ git checkout -f -b master origin/master $ git checkout -f temp $ git rebase master
뭐 이런 식으로 하는 수도...