포스트

Branch 보다 깊이 알기

Branch 보다 깊이 알기

Fastforward vs 3-way merge

Fastforward

1
2
3
4
5
6
7
8
9
10
11
12
# 브랜치 구조
A---B---C  (feature)
     ^
     |
   main

# merge 실행
git checkout main
git merge feature

# 결과
A---B---C  (main, feature)
  • 강제로 3-way-merge: --no-ff 옵션을 주면 됨

3-way merge

1
2
3
4
5
6
7
8
9
10
11
12
13
# 브랜치 구조
A---B---C  (main)
     \
      D---E  (feature)

# merge 실행
git checkout main
git merge feature

# 결과
A---B---C------M  (main)
     \         /
      D-------E  (feature)

다른 브랜치에서 원하는 커밋만 따오기

1
git cherry-pick (커밋 해시)

다른 브랜치에서 파생된 브랜치 옮겨 붙이기

1
git rebase --onto (도착 브랜치) (출발 브랜치) (이동할 브랜치)

다른 커밋들을 하나로 묶어 가져오기

1
git merge --squash (대상 브랜치)

Git Flow

  • (https://nvie.com/posts/a-successful-git-branching-model/)[https://nvie.com/posts/a-successful-git-branching-model/]

브랜치용도
main제품 출시/배포
develop다음 출시/배포를 위한 개발 진행
release출시/배포 전 테이스 진행(QA)
feature기능 개발
hotfix긴급한 버그 수정

참고

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.