다른 개발자와 함께 feature A branch에서 작업을 하고 있다면 위험할 수 있다.
rebase를 하게되면 e가 가지고 있는 pointer가 d가 아닌 g로 변경해야하는데
이렇게 pointer를 변경하게 되면
기존에 있던 commit이 유지되는 것이 아니라
새로운 commit을 만들게 된다.
겉으로는 똑같아 보이지만 실제로는 다른 e와 f가 생기게 된다.
만약 다른 개발자와 동일한 branch에서 작업하고 있을 때
내가 rebase하고 push를 해서 서버에 변경된 사항을 업데이트를 한다면
다른 개발자가 가지고 있는
feature A의 e와 f는 전혀 다른 commit이 되어버린다.
다른 개발자와 함께 branch 위에서 작업을 하고 있고
이미 서버에 history가 업로드 되어있는 경우
업로드된 history는 절대로 rebase하면 안된다!!!
서버에 업로드되지 않은 내 로컬에 있는 commit들을 rebase하기 자유롭다.
현재 branch를 feature-b로 옮긴다.
git hist git checkout feature-b
rebase하기
git rebase master
다시 master branch로 돌아와서 merge하기
git checkout master git merge feature-b
깔끔하게 branch들 삭제하기
git branch -d feature-a git branch -d feature-b