Git Rebase

Humbler·2020년 3월 10일
0

git rebase는 반드시 local에서 해야한다.
push하기 전에.

git add ㅡ> git commit ㅡ> git rebase -i master featurebranch

그렇게해서 중복된 commit들을 하나의 commit으로 통일해줘서 단 하나의 commit message만이 repo의 pr에 등록되도록 한다.
이 때 여러 commit들을 하나의 commit message로 통일해주는 vim 창이 뜨는데 이 때 제일 위의 commit message는 pick으로 그대로 두고, 그 아래의 commit message들의 pick을 s(squash)로 바꿔준다.

그러고 나면 또다른 vim 창이 뜨면서 누적된 commit message들이 나타나는데 여기서도 최종적으로 남기고 싶은 commit message 하나만 남기고 다른 것들은 다 지워준다.

근데 만약 git rebase하던 걸 멈추고 원상태로 돌아가고 싶으면 'git rebase --abort'를 해주면 된다.

그리고 rebase 후에 마지막에 push 할 때는 "git push origin feature/rebase0(현재 작업하던 branch명)"로 해주면 된다. 만약 이렇게 했는데 error 뜨면서 non fast forward라는 rejected message가 뜨며 push 안된다면, "git push origin feature/rebase0 -f" 이런 식으로 -f를 붙여줘서 force push를 한다.

이렇게 해서 featurebranch에서의 push가 다 끝나면, 이 branch는 이제 쓸모가 없으니 삭제해도 된다.
삭제해도 되는 이유는 github의 origin master branch에는 이 쓸모없어진 feature branch에서의 작업기록이 남아있기 때문에 언제든 다시 들춰볼 수 있기 때문이다. local에 이 branch를 계속 둘 이유가 없어진 거지.

그리고 바로 내 local master branch에서 git pull origin master를 해줘서 remote에서 최신화된 디렉토리를 받아오고 다음 작업을 시작하자.

여기까지 한 cycle을 다 돈 뒤에 새로운 기능을 push 하고 싶으면 'git add'를 한뒤 branch를 새로 파주고 여기에서 git commit -> git rebase -i master feature branch를 해주는 걸 반복하면 된다.

위 과정에서 git status와 git log는 시의적절하게 많이 활용해주자.

profile
무엇을 모르는지 모르는 상태에서 무엇을 모르는지 아는 상태가 되어가는.

0개의 댓글