git에서 한 브랜치에서 다른 브랜치로 합치는 방법은 두 가지가 있다. 하나는 Merge이고 다른 하나는 Rebase다. (그동안 내가 해왔던 방식은 Merge)
git 공식홈페이지를 토대로 차근차근 이해해보자
▪️ 두 개의 나누어진 브랜치의 모습
▪️ 두 개의 브랜치로 나누어진 커밋 히스토리. 이 두 브랜치를 합치는 가장 쉬운 방법은 앞에서 살펴본 대로 Merge
명령을 사용하는 것이다. 두 브랜치의 마지막 커밋 두개(C3,C4)
와 공통 조상(C2)
을 사용하는 3-way-Merge로 새로운 커밋을 만들어 낸다.
✔️만약에 feature/kimhyesu
라는 branch
를 만들어서 작업하고 master
에서 merge
를 사용해서 합친다고 하면, feature/kimhyesu
에서 기록한 모든 commit이 master의 commit으로 기록이 남는다.
✔️rebase
방식을 사용해서 합친다면 내가 작업하면서 남겼던 여러가지 commit 중 필요한 commit만 남겨서 master에 합치기 때문에 master의 commit은 항상 깔끔하게 관리된다는 장점이 있다.
1. git add . 2. git commit -m “commit 메세지” 3. git checkout main 4. git pull origin main 5. git checkout (branch) 6. git rebase -i main - i (수정) - 첫번째만 pick, 나머지는 s - esc - :wq - i - 커밋 지우고 하나만 남기기 - esc - :wq - git push origin (branch) git push origin (branch) -f 하면 이전꺼 밀어버리는 효과.
git add .
git commit
은 수정사항이 없으므로 진행하지 않음git rebase --continue
git add .
git rebase --continue
반복한다.git rebase --abort
로 rebase 진행 전 상황으로 돌아간다.