Git Rebase

Git Rebase

1. 이유

  • 브랜치를 생성한 이후 수정사항이 생길 때마다 commit을 하고, 이후 merge 했을 때 모든 commit이 남기때문에 history가 지저분해지기 때문에

그렇기 때문에 Rebase로 commit을 하나로 합쳐서 관리한다 ❗️ ❗️

2. 사용

  • 각 branch에서 작업하다가 2-3개의 commit이 생기면 rebase 진행
  • ✨ 하나의 branch에는 1개의 commit ✨

🌈 진행순서

  • git add .
  • git commit -m"[commit 내용]" 작성
  • git checkout main 으로 이동 후 git pull origin main 진행
  • git checkout [branch명] 으로 이동 후 git rebase -i main 진행
  • 💥 conflict 발생 시에는 conflict 해결 후
    • git add .
    • git rebase -i continue 반복
    • 해결이 안된다면 git rebase --abort로 rebase를 진행하기 전 상황으로 돌아가기
  • ⚡️ squash 진행 시에는
    • 가장 오래된 commit을 pick 하고
    • 다른 commit은 가장 오래된 commit을 기준으로 squash 진행
    • ESC ➡️ :wq
  • 💡 최종적으로 branch를 대표하는 commit 수정용 에디터 등장
    • 하나의 commit message만 남기고 나머지는 삭제
    • ESC ➡️ :wq
  • 🔥 git은 history가 다른 branch의 push를 허용하지 않는다!
    • git push origin [브랜치명] -f 진행 (-f 강제)