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 라이센스를 따릅니다.
