fast-forward merge 커밋 메시지 생성하기
Merge 했을 때 커밋 메시지가 생성되지 않는 경우
다른 브랜치를 머지했는데 git 로그에 merge 되었다는 커밋 메시지는 생성되지 않고, 다른 브랜치의 커밋 내역만 생성되었다.
하지만 커밋 내역들이 머지해서 가져온 것이라는 티를 내줘야 할 것 같아서, 머지 메시지 생성 옵션에 대해 알아보게 되었다.
fast-forward
2개의 커밋 A와 B가 있을 때, A의 히스토리가 B의 히스토리에 전부 포함되어 있는 경우, 2개의 커밋은 fast-forward 관계이다.
위 그림에서 bugfix는 master 브랜치에서 분기한 브랜치다.
bugfix 브랜치를 master 브랜치로 병합할 때, master 브랜치의 상태는 bugfix 이후로 변경되지 않았다.
때문에 bugfix 브랜치는 master 브랜치의 이력을 모두 포함하고 있어서 fast-forward merge가 된다.
이렇게 fast-forward merge인 경우에는 머지 커밋 생성되지 않는다.
non fast-forward merge
병합 실행 시에 fast-forward merge인 경우라도 non fast-forward merge 옵션을 지정하면 머지 커밋을 생성할 수 있다.
non fast-forward를 줄여서 –no-ff 라고 한다.
한 번만 –no-ff
1
git merge --no-ff 브랜치명
모든 브랜치에서 항상 –no-ff
1
git config branch.autosetuprebase always
특정 브랜치에서 항상 –no-ff
1
git config branch.<name>.rebase true
알리아스를 이용하여 –no-ff
1
2
3
git config --global alias.nffmerge "merge --no-ff"
git nffmerge
참고사이트
This post is licensed under CC BY 4.0 by the author.