Git Rebase

jivyyyy·2020년 6월 9일
0

Git Rebase?

기존에 사용하던 merge 방식
ex) Initial ---- > 1번 branch -- > A branch --->B branch

하지만 만약 동시에 1번 branch -- > c branch 를 따서 작업했고 추후에 C와 나의 B 를 머지하고자 한다면??
혹은 내가 master를 pull 받아 최신화하고 작업하고 다시 push 하려하는데 이미 다른 사람의 PR 이 merge 되어

브랜치를 깔끔하게 유지하기 위해서 Rebase가 유용하게 사용된다.

Base - 브랜치를 따는 기준.

여기서는 1번 branch 가 기준

  • Rebase = C 와 B를 merge 한 D를 최신마스터의 기준으로 바꾸는 것.

마스터에서 : git rebase -i master feature/jia
브랜치에서 : git rebase -i master
하지만 실수하지 않기 위해서 브랜치에서 작업해주는것이 좋다.
(-i 는 눈으로 직접 보고 하나하나 수정할 수 있게 해주는 명령어)

  • 제일 먼저 한 커밋이 squash 의 기준이 되므로
    1번은 pick, 나머지는 s 혹은 squash 로 바꾸어준다. = >첫번째의 커밋에 녹여준다.

git pull origin master 한 뒤
git rebase -i 하고 conflict가 발생하면

수정 한 뒤 git add . (commit 은 절대 절대 하지 않는다!!)

git rebase --continue

  • 만약 push 한 뒤 conflict 가 나서 이를 해결하고 다시 push 할 경우에는 git push origin feature/~ -f 로 강제 push 를 해준다.
profile
나만의 속도로

0개의 댓글