5-1.Git 병합

2023. 2. 12. 23:37Git

명령어

git merge '브렌치명'  (병합)

ex) git merge  add-coach

 

서로 다른 브랜치를 합치는 두 방식

  • merge : 두 브랜치를 한 커밋에 이어붙입니다.
    • 브랜치 사용내역을 남길 필요가 있을 때 적합한 방식입니다.
    • 다른 형태의 merge에 대해서도 이후 다루게 될 것입니다.
  • rebase : 브랜치를 다른 브랜치에 이어붙입니다.
    • 한 줄로 깔끔히 정리된 내역을 유지하기 원할 때 적합합니다.
    • 이미 팀원과 공유된 커밋들에 대해서는 사용하지 않는 것이 좋습니다.

 

merge : 히스토리가 남음

rebase : 히스토리가 없음

 

 

1. merge로 합치기

add-coach 브랜치를 main 브랜치로 merge

  • main 브랜치로 이동
  • 아래의 명령어로 병합

$ git switch main

==============================
Switched to branch 'main'

==============================

$ git merge add-coach 

==============================

Auto-merging leopards.yaml

Auto-merging panthers.yaml

Merge made by the 'ort' strategy.

 leopards.yaml | 2 ++
 panthers.yaml | 2 ++
 tigers.yaml   | 4 +++-
 3 files changed, 7 insertions(+), 1 deletion(-)

==============================

  • :wq로 자동입력된 커밋 메시지 저장하여 마무리
  • 소스트리에서 확인

 

💡 merge는 reset으로 되돌리기 가능

  • merge도 하나의 커밋
  • merge하기 전 해당 브랜치의 마지막 시점으로

 

병합된 브랜치는 삭제

삭제 전 소스트리에서 add-coach 위치 확인

git branch -d add-coach

 

2. rebase로 합치기

new-teams 브랜치를 main 브랜치로 rebase

  • new-teams 브랜치로 이동
    • 🛑 merge때와는 반대!
  • 아래의 명령어로 병합
git rebase main

 

  • 소스트리에서 상태 확인
    • main 브랜치는 뒤쳐져 있는 상황

 

  • main 브랜치로 이동 후 아래 명령어로 new-teams의 시점으로 fast-forward
git merge new-teams

 

  • new-teams 브랜치 삭제