티스토리 뷰
Squash merge란?
GitHub에서 PR을 merge할 때 [Create a merge commit], [Squash and merge], [Rebase and merge]의 3가지 옵션이 있다. create a merge commit은 단순하게 git merge 브랜치명만을 사용하는 방법이다. 해당 방법은 Fast-Forward & 3-way 병합 글을 보면 어떤 방식으로 병합이 되는지 알 수 있다. Rebase and merge는 rebase 글을 보면 된다.
이 글에서는 Sqash and merge에 대해서 다룰 것이다. squash merge는 git 히스토리를 요약해서 병합하는 방법이다. 분기 이후에 발생한 브랜치의 모든 commit들을 하나의 새 커밋으로 요약한다.
위에는 git log로 그래프를 출력한 모습이다. feature을 master에 squash merge 하면 하나의 merge commit이 생성되는 것을 확인할 수 있다.
squash merge후 merge가 발생한 브랜치에서 git log로 로그를 출력하면 feature의 모든 commit이 아닌 단 하나의 commit만이 반영된 것을 확인할 수 있다.
Squash merge의 장점
Squash merge는 브랜치 분기를 알 수 있고 워크 플로를 변경하지 않는다. 이 브랜치 분기를 통해서 작업 시작과 작업이 끝난 시점을 알 수 있다.
브랜치 분기를 하고 작업을 할 때 보통 여러 commit들이 생성된다. 이 작업 commit들을 하나의 commit으로 가져가기 때문에 해당 작업을 되돌리기 위해 revert나 reset 사용할 때 도움이 된다.
Squash merge를 할 때 유의할 점
squash merge를 하면 여러 commit이 있더라도 단 하나의 merge commit만이 생성된다. 이렇게 작업 내용이 압축되므로 협업을 할 때에는 commit 내용이 유지가 필요한 시점과 아닌 시점을 고려해서 사용하는 것이 중요하다.
참고
- https://docs.microsoft.com/en-us/azure/devops/repos/git/merging-with-squash?view=azure-devops
- Total
- Today
- Yesterday
- string
- downTo
- squash merge
- solidity
- java
- Python
- hashcode
- postman collection
- github
- graphql
- go 특징
- pm.expect
- 확장 함수
- 1차 인터뷰
- pm.test
- Kotlin
- Kotlin In Action
- 주생성자
- 코딩테스트
- 코틀린
- python3
- Basic Type
- git
- 2차 인터뷰
- postman tests
- 네이버 2022 공채
- postman
- mysql
- Squash and merge
- DGS Framework
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |