rebase

GIT rebase

2022. 6. 21. 22:07
반응형

rebase

  • 서로 다른 두브랜치를 병합시킬 때
  • 여러개의 commit 이력을 1개의 새로운 commit 으로 합칠 때(되감기)
    • git merge 전략 중 하나.
    • 내가 작업한 브랜치에 master의 최신 이력을 적용시킬 때(브랜치 현행화)
    • 개인 브랜치는 commit history 깔끔하게 관리하고 싶을 경우 수행 추천.
    • 공동 작업 브랜치 or master에는 수행하지 말자(remote master에 merge된 경우 기존의 commit tree가 완전히 달라지기에 동료들로 부터.....)

rebase 활용

  1. feature 브랜치에서 작업을 하는 동안 main 브랜치가 release, hotfix 등 변경되었고 merge 하려 할 때 충돌이 발생, feature 브랜치에서 main 브랜치를 rebase 진행한 후 main으로 merge를 수행한다.
  2. main 브랜치의 내용을 현재 작업 중인 feature 브랜치로 병합할 때(최신 commit으로 base 옴겨주기)
git rebase -i HEAD~2,3 //합칠 개수
git rebase -i HEAD~3 //마지막부터 몇번째 commit 까지 개수
​
 pick -> squash 변경 후 vi 저장 //합칠경우 (lastest 부터 역순으로!!!!)
 pick -> drop 변경 후 vi 저장   //특정 commit 삭제
​
git log //합쳐진 commit 확인 or git reflog
git commit -m "주석 수정" //합친 후 주석 수정 or 새로운 commit 안남길 경우 건너뜀
git rebase --continue //rebase 완료  
git rebase --abort //rebase 롤백시 
git push origin {branch} -f //force remote push
  • rebase invalid upstream 'HEAD~n' 오류 발생시 처리
git rebase --interactive HEAD~5   //위 순서에 맞춰 vi 편집 후 force push
반응형

'Infra > git' 카테고리의 다른 글

GIT merge  (0) 2022.06.21
GIT push  (0) 2022.06.21
GIT commit  (0) 2022.06.21
GIT stash  (0) 2022.06.21
GIT clean  (0) 2022.06.21

+ Recent posts

반응형