220405 git rebase 브런치 합치기

1 분 소요

rebase는 참 쓰기 어려운 깃 커맨드이다. 여러가지 브런치를 따서 작업을 하는 연습을 하고 있었는데, rebase라는 것을 알자마자 나는

언제든지 commit을 합칠 수 있는 기능

이라고 생각해버렸다.

실제로는 HEAD로부터 지정한 커밋 사이에 있는 모든 커밋들을 순서에 맞게 하나의 flow (혹은 branch)로 통합 및 변환할 수 있는 기능이었다. 그래서.. 어떤 일이 벌어졌다면,

브런치를 다 삭제해서 망정이지,,

temp라는 커밋을 모든 브런치에다가 다 해놓고 나중에 입맛대로 다 합칠 수 있을 줄 알았던 것이다 ㅋㅋㅋ..

아무튼, rebase와 merge는 커밋의 통합을 다른 방향으로 수행하기에 현재 머지가 우르르 되어 있는 나의 작업 이력은 이전 temp를 바꾸기엔 다소 무리가 있어보였다.
그래서, 우선적으로 모든 브런치에 대해 rebase 한 후, squash 할 수 있는 부분을 다루기로 하였다.

나란히 나란히

이제는 각 커밋 내용을 확인하고 합칠 수 있는 내용들을 보고 합쳐야 한다..

이제는 커밋을 깔끔하게 적을 것 같다. 사람을 부지런하게 해줄 듯 한 커밋관리의 세계

두번째 feature 브런치 상태에서 19개의 커밋에 대한 리베이스의 명령어는 아래와 같다.

git rebase -i HEAD~19

해당 단계에서 사이사이 conflict가 생길 수 있는데, 침착하게 git status 후 conflict 부분을 수정해주고 git add . 를 통해 rebase가 계속 진행될 수 있도록 한다. 명령어는 git rebase –continue.

만약, 하던 rebase 작업을 취소하고 싶다면 git rebase –abort를 하여야한다. 다만,, 진행된 부분에 대해서는 돌릴 수 없을 것이니 git flog를 사용하여 HEAD를 이전으로 돌리도록 하자.

얼마나 다시 적어야 하는 거지

그리고 열심히 적은 결과…

나란히 나란히 깔끔히

커밋은 적을 때 잘 적자.

카테고리:

업데이트: