git

merge와 rebase

잔망루피 2023. 1. 16. 22:10

merge

  • Fast-forward
  • 3-way Merge
  • Squash and Merge

 

Fast-forward

  • 현재 브랜치의 head를 목표 브랜치의 head(최신)까지 이동시킴
  • 별도의 merge commit이 발생 x

 

3-way Merge

before
after

c5가 c3, c4를 가리키며 merge되었다.

 

 

 

Squash and Merge

https://learn.microsoft.com/en-us/azure/devops/repos/git/merging-with-squash?view=azure-devops

git merge --squash 브랜치명

위 그림에서 my-feature branch는 커밋이 여러 개라도 squash merge를 하면 커밋이 한 개로 merge된다.

develop과 feature 브랜치 간의 머지에 추천

 

 

rebase

한 브랜치에서 변경된 사항을 다른 브랜치에 적용

직관적(선형적), 활용성이 높지만 사용이 어려움

커밋의 구조를 바꾸기 때문에 원격저장소를 통한 협업시 잘못 사용하면 커밋 히스토리가 상당히 복잡해짐

로컬 브랜치 내에서 히스토리 정리할 때만 사용하는 것을 권장

rebase는 과거 커밋을 정리하는 용도로 활용 가능

main과 develop 브랜치간의 머지에 추천

git checkout experiment
git rebase master

git checkout master
git merge experiment

c'4의 변경사항이 c3에 적용되고 master 브랜치를 Fast-forward함

 

 

 


참고 👇

https://backlog.com/git-tutorial/kr/stepup/stepup1_4.html

 

누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog

누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다!

backlog.com

 

https://learn.microsoft.com/en-us/azure/devops/repos/git/merging-with-squash?view=azure-devops 

 

Merge strategies and squash merge - Azure Repos

Squash merge pull requests to keep a linear Git history. Learn about multiple merge base issues and prevention.

learn.microsoft.com

 

https://meetup.nhncloud.com/posts/122

 

GitHub의 Merge, Squash and Merge, Rebase and Merge 정확히 이해하기 : NHN Cloud Meetup

GitHub의 Merge, Squash and Merge, Rebase and Merge 정확히 이해하기

meetup.nhncloud.com

 

반응형

'git' 카테고리의 다른 글

Please commit your changes or stash them before you switch branches.Aborting  (0) 2023.02.26
Git ^M 문자 제거  (0) 2023.01.27
[git] branch  (0) 2023.01.09
[Git] fatal: refusing to merge unrelated histories  (0) 2023.01.06
HEAD detached  (0) 2022.02.06