본문 바로가기

Open Source/git

git merge

[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