A라는 branch의 base는 3번
merge를 하면,
head(3번)에서 진행이 안되었기에 4-5로 붙을 수 있다.
진행되었다면,
commit하면서 merge commit(7번)이 생김
why? Head가 6으로 바뀌었었기 때문이다.!!!
Rebase는
여기에서
base를 6으로 다시 잡고(Fast-forward ...?를 깨끗하게 하기 위해서)
이렇게하면
장점: 보기 지저분한 잔가지가 없어져서 히스토리가 깨끗해진다.-> 깔끔한 내역
단점: 4, 5 ....모든 commit에 대해서 각 각 conflict를 해결해줘야한다.
tip.
wip작업중이라는 뜻!
어차피 4번으로 합칠거니까~~~!!!
:git rebase하기 전 상태로 돌아갈 수 있다.__
만약 4,5에서 login기능을 구현했다면 login을 확인하기 위해서 4,5의 commit을 각각 확인해야함
->
(4,5 -> 합쳐져서 7)
=> squash를 통해서 4,5를 합쳐서 갖다올린다.(PR을 날릴때 commit이 하나인 상태가 된다.)
-f push => 내가 올리는 용어를 그대로 받아라
=> 절대 "master" 라던가 "공유 branch" 에서 하면 안된다.
-i(interactive 옵션)
git rebase -i : rebase하면서squash를 할 수 있다.