개발관련/Git

`git merge`와`git merge --no-ff`의 차이점

Rateye 2021. 12. 11. 15:34
728x90
반응형
질문 : `git merge`와`git merge --no-ff`의 차이점은 무엇입니까?

gitk log 사용하면 둘 사이의 차이점을 찾을 수 없습니다. 차이점을 어떻게 관찰 할 수 있습니까 (git 명령 또는 일부 도구 사용)?

답변

--no-ff 플래그는 HEAD 가 병합하려는 커밋의 조상 git merge 가 "빨리 감기"를 실행하는 것을 방지합니다. 빨리 감기는 병합 커밋을 구성하는 대신 git이 들어오는 커밋을 가리 키도록 분기 포인터를 이동하는 경우입니다. 이것은 일반적으로 로컬 변경없이 git pull 을 수행 할 때 발생합니다.

그러나 때로는 특정 분기 토폴로지를 유지하기를 원하기 때문에 이러한 동작이 발생하는 것을 방지하고 싶을 때가 있습니다 (예 : 토픽 분기에서 병합하고 히스토리를 읽을 때 그렇게 보이는지 확인하려는 경우). 이를 위해 --no-ff 플래그를 git merge항상 빨리 감기 대신 병합을 생성합니다.

마찬가지로, git pull git merge 를 사용하고 빨리 감기를 할 수없는 경우 구제 --ff-only 하려면 --ff-only 플래그를 사용할 수 있습니다. git pull --ff-only 와 같은 작업을 정기적으로 수행 할 수 있으며 오류가 발생하면 다시 돌아가 병합 또는 리베이스할지 결정할 수 있습니다.

출처 : https://stackoverflow.com/questions/9069061/what-is-the-difference-between-git-merge-and-git-merge-no-ff
728x90
반응형