티스토리 뷰
Fast-Forward
Fast-Forward는 직역하자면 빨리감기이다. Fast-Forward 병합은 혼자 개발할 때 사용한다. 혼자 개발할 때 commit은 순차적으로 생성된다. commit이 순차적으로 발생한 경우 사용하는 병합 방식이 Fast-Forward이다.
혼자 작업 할 때 새로운 기능을 추가하기위해서 새로운 브랜치를 생성한다고 하자. commit들은 그림에서 볼수 있듯 순차적으로 생성된다. 해당 commit들은 Fast-Forward 방식으로 병합한다면 아래의 그림과 같이 병합될 것이다.
여기서 가장 큰 특징은 분기가 시작된 브랜치, 즉 main 브랜치에 아무런 변경도 없어야 한다. main commit 이후로는 어떤 commit도 없기 때문에 fast-forward 병합이 가능했다.
3-way
3-way는 여러 개발자와 작업하는 경우 사용하는 방법이다.
3-way 병합의 경우 분기이후에 두 브랜치 모두 변경이 일어난 경우 사용된다. 위의 그림을 보면 빨간 점선 박스 3개가 있다. 이 3개의 박스들이 변경의 기준이 되는 커밋이다. 3-way의 경우 공통 조상 커밋(여기서는 main commit 1)과 그 이후의 각 브랜치의 커밋을 기준으로 병합을 한다.
3-way 병합은 두 브랜치에서 공통 조상 commit을 기준으로 브랜치를 병합한다. 그리고 병합 후에는 병합 commit이 생성된다. 이런 병합 commit은 부모 commit이 2개이다.
git log --branches --decorate --graph --oneline 명령어를 통해서 브랜치들을 시각적으로 확인할 수 있다. 병합 commit과 메시지를 확인할 수 있다.
충돌 없이 3-way 병합이 된 경우 자동적으로 "Merge branch ~"이라는 commit 메시지가 생성된 것을 확인할 수 있다.
git merge 브랜치명 --edit을 통해서 자동적으로 생성되는 메시지가 아닌 다른 메시지를 입력할 수도 있다. 위의 사진을 보면 commit 메시지가 Merge branch ~ 가 아닌 Edit message인 것을 확인할 수 있다.
참고
- Git 교과서
- Total
- Today
- Yesterday
- postman tests
- 확장 함수
- mysql
- pm.test
- solidity
- 1차 인터뷰
- string
- Python
- graphql
- python3
- 네이버 2022 공채
- Squash and merge
- git
- github
- pm.expect
- 코딩테스트
- Kotlin In Action
- java
- Kotlin
- go 특징
- Basic Type
- DGS Framework
- 코틀린
- 2차 인터뷰
- postman
- downTo
- squash merge
- 주생성자
- postman collection
- hashcode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |