[1. 개요]
git merge 는 기본적으로 다른 branch 의 커밋 사항을 현재 branch 에 반영하는 것으로
여기서는 git merge 시 사용 가능한 여러 옵션을 정리하도록 한다.
현재 branch: master
다른 branch: develop
[2. --no-ff]
$ git merge --no-ff develop
--no-ff 는 fast forward(=ff) 가 가능하더라도 하지 않고, 새로운 commit 으로 생성한다는 의미이다.
merge 후 에도, master 와 develop branch 는 서로 다른 HEAD 를 가리키게 된다.
- fast forward 가 가능한 경우에는 master 의 HEAD 가 develop 의 HEAD 와 같아지게 됨.
[3. --squash]
$ git merge --squash develop
--squash 는 커밋들을 한번에 합쳐서 한개의 커밋으로 만든 뒤 병합한다.
보통 develop 의 커밋 기록을 master 에 남기고 싶지 않을 때 유용하다.
develop 의 모든 변경 사항이 master branch 의 stage 에 add 된 상태가 되고,
여기서 commit 메시지를 작성하고,
push 하면
원격 저장소에는 develop 의 commit 이력이 남지 않으면서,
develop 의 모든 변경 사항이 한번에 master 에 반영되어 업로드 된다.
'Open Source > git' 카테고리의 다른 글
git 명령어 정리 (0) | 2025.03.11 |
---|---|
git stash (1) | 2024.04.18 |
git 명령어 정리 (0) | 2023.04.17 |
github token 사용 (0) | 2023.02.18 |
git tag (0) | 2022.08.10 |