지금까지 브랜치에서 작업하고 다음과 같은 순서로 Push 했었다.
git add .
git commit
git push origin (working branch)
하지만 항상 이렇게 하다보면 commit은 점점 쌓여가고 내역도 지저분(?)하게 된다.
그래서 그 점을 보완할 수 있는 기능이 Rebase 이다.
브랜치간 작업을 합치는 방법인 rebase
는 여러 commit을 "복사" 하여 다른곳에 떨궈준다. 👀
말보다는 아래의 이미지로 확인하자.
git rebase master
명령어를 실행한 모습
이렇게 마스터 브랜치에 바로 복붙(?)하는 것이 rebase
이다.
하지만 마스터 브랜치에 rebase하기 전에 해야할 작업이 있다.
git checkout master
git pull origin master
git checkout (working branch)
git reabse -i master
여러개의 커밋이 있던 경우 첫 줄의
pick
만 제외하고 나머지 commits는pick
을s
로 바꿔준다.
충돌이 발생하지 않는다면 바로 push!
만약 reject
될 경우 깃헙과 로컬에서 작업내용이 일치하기 않기 때문이므로
git push origin (working branch) --force
를 하면 된다.
git add .
git rebase --continue
충돌이 발생하는 만큼 위의 과정을 반복하면 된다.
bonus
이런 것도 가능하다
git pull --rebase; git push