git rebase

1

git

목록 보기
6/9
post-thumbnail

git rebase는 쉽게 말하면 커밋 기록중 내가 원하는것만 push를 할 수 있는 기능 입니다.

주의할 사항은 다른 사람들과 함께 쓰고 있는 브랜치에다가 git push를 한 경우에는 가급적 rebase를 쓰지 않는 것이 좋다.
내가 rebase한 내용을 다른 사람이 git pull로 당겨 받으면 엄청난 conflict를 만날 수 있다.
local에서 작업하고 origin으로 push하기 전에 깔끔하게 커밋을 정리하는 차원에서 이용하는 것이 좋다.

-이미지 FlyingSquirrel님 블로그 에서 가져옴

git rebase 하는방법

현재 커밋 , 커밋을 해서 여러개의 커밋이 올라가 있는 상태라고 하자.

$ git rebase -i @~3

-i는 --interactive 옵션이고, @~3은 최근 3개의 commit을 rebase하겠다라는 옵션이다. i를 하면 모든 수정이 가능하다.

vi 편집기로 커밋의 기록들이 보인다.

pick f7f3f6d commit1
pick 310154e commit2  // 여기서 pick을 s로 바꿔준다.
pick a5f4a0d commit3  // 여기서 pick을 s로 바꿔준다.

p, pick = use commit
->이커밋은 수정없이 사용하겠다.
r, reword = use commit, but edit the commit message
->이커밋은 사용하지만 메세지를 수정하겠다.
e, edit = use commit, but stop for amending
->이커밋은 사용하지만 내용도 수정하겠다.
s, squash = use commit, but meld into previous commit
->이전 커밋에 합쳐 버리겠다.
f, fixup = like "squash", but discard this commit's log message
->이전 커밋에 합치고 메세지는 합치지 않는다
d, drop
-> 커밋기록 삭제하겠다.

다른 rebase의 기능으론 merge처럼 다른 브랜치의 커밋을 가져올때도 쓰인다. !
yeonju_task브랜치로 이동하여 아래의 명령문을 입력하면

$ git rebase dev

기둥이되는 dev의 커밋 기록이 가져와진다.
merge와 차이점음
rebase는 나의 커밋기록보다 가져올 커밋기록이 더 중요할때 가져올 커밋 기록을 기반으로 나의 커밋기록이 덧붙여진다.

반면에 merge는 나의 커밋기록을 기반으로 가져올 커밋기록이 붙여 진다.

profile
👩🏻‍💻항상발전하자 🔥

0개의 댓글