SUIN

다양한 Git merge 방법 알아보기(3-way merge/fast-forward merge/rebase and merge/squash and merge) 본문

Git

다양한 Git merge 방법 알아보기(3-way merge/fast-forward merge/rebase and merge/squash and merge)

choi suin 2022. 8. 9. 16:04
728x90

 

로컬 저장소에서 바로 merge 하는 방법도 있지만 협업을 하면서 merge전 검토 과정을 거치게 된다.

 

1.  3-way merge

  • 새로운 commit branch 생성
  • git flow : feature/develop 브랜치에서 많이 사용

 

2. fast-forward merge

  • main branch ->  신규 commit이 없을 경우 자동으로 fast-forward merge 발동
  • git merge —no-ff : 강제 3-way merge 가능

 

3. rebase and merge

  • branch의 시작점을 이동시켜 3-way merge → fast-forward merge처럼 만들어줄 수 있다.
  • rebase: branch 시작점을 다른 commit으로 옮겨주는 행위
  • rebase 쓰는 이유 : 3 way-merge를 하지 않고도 깔끔하게 branch를 관리하므로 history나 log확인이 쉬움
  • 단점 : conflict가 자주 일어남

 

4. squash and merge

  • 선으로 이어진 branch들의 log는 모두 다 기록이 되므로 비교적 로그가 깔끔하지 않으므로 별도의 log를 저장하거나 확인할 필요가 없을 경우squash and merge를 적용하여 머지 선을 잘라버리고 merge 했던 사이드 branch log들이 나오지 않게 한다.
  • 브랜치에서 만들어놨던 많은 commit을 다 합쳐서 하나의 commit으로 main branch 생성
  • 중요하지 않은 branch에서 사용

 

 


 

 

'Git' 카테고리의 다른 글

[git] git Organizations 연결하기  (2) 2022.11.04
git 로컬 > 원격저장소 대소문자 폴더명 수정  (0) 2022.08.29
내가 보려고 정리한 git  (1) 2022.08.09