내가 사용하는 것입니다 때 난 정말 지금까지 한 번 생각할 수 없다 git merge
가 아니라 git rebase
하고 있지 a가 표시 커밋 갖고 싶어. 기본적으로 git이 빨리 감기되도록 구성하는 방법이 있습니까? --ff
옵션 이 있다는 사실은 방법이 있다는 것을 암시하는 것처럼 보이지만 문서에서 찾을 수없는 것 같습니다.
내가 사용하는 것입니다 때 난 정말 지금까지 한 번 생각할 수 없다 git merge
가 아니라 git rebase
하고 있지 a가 표시 커밋 갖고 싶어. 기본적으로 git이 빨리 감기되도록 구성하는 방법이 있습니까? --ff
옵션 이 있다는 사실은 방법이 있다는 것을 암시하는 것처럼 보이지만 문서에서 찾을 수없는 것 같습니다.
답변:
예, 있습니다 --no-ff
. 분기별로 병합 옵션을 구성 할 수 있습니다 (예 :
git config branch.master.mergeoptions "--no-ff"
$(REPO)/.git/config
파일에 다음을 추가 합니다.
[branch "master"]
mergeoptions = --no-ff
각주 : 내 경험에 따르면, 결국 빨리 감기를 끄는 것이 git 신규 이민자에게 도움이된다는 것을 알았습니다. remote ..blarf '커밋.
10 년 후 각주 2 : 아래의 다른 답변은보다 현대적인 구성 옵션을 제공하지만 실제로 빈 병합 커밋은 실제로 만 커지기 때문에이 날짜와 나이에 기본값 (즉, 가능하면 빨리 감기)을 유지하고 싶을 것입니다 역사를 추론하기가 훨씬 어렵습니다.
git pull
이다 git fetch
+는 git merge
.
git merge --no-ff (branchname)
합니까? 그리고 git pull
항상있는 그대로 기능 하고 싶 습니까?
스레드에 여전히 보류중인 질문이있는 것 같습니다 : 어떻게 전역 적으로 (즉 모든 지점에서)합니까? 기록을 위해 다음을 사용할 수 있습니다.
git config --add merge.ff false
... 현재 저장소의 모든 브랜치에 적용합니다. 옵션 (로컬 설정이 전역 설정을 재정의 함) 없이 누군가가 실행 하지 않은 모든 리포지토리의 모든 브랜치에 적용하려면 다음을 실행하십시오.--global
git config --global --add merge.ff false
로부터 문서 :
merge.ff
기본적으로 git은 현재 커밋의 자손 인 커밋을 병합 할 때 추가 병합 커밋을 만들지 않습니다. 대신 현재 분기의 끝이 빨리 감 깁니다. false로 설정하면이 변수는 git에게 이러한 경우 추가 병합 커밋을 생성하도록 지시--no-ff
합니다 (명령 줄에서 옵션 을 제공하는 것과 동일 ). 이 옵션 만 설정--ff-only
하면 명령 줄에서 옵션 을 제공하는 것과 같은 빨리 감기 병합 만 허용 됩니다.
merge.ff
Git 1.7.6에서 도입되었습니다. 이전 버전에서는 효과적이지 않습니다.
puff = "pull --ff --ff-only"
답변 스레드를 읽으면서 다음 두 가지 옵션을 사용했습니다.
git config --global pull.ff only # Disallows non ff merges on pull. Overrides merge.ff when pulling
git config --global merge.ff false # even create extra merge commit when fast forward merge would be possible
느슨하게 관련되어 있습니다.이 설정은 풀 동안 문제를 피할 수 있음을 발견했습니다.
git config --global pull.rebase true # set up pull to rebase instead of merge
merge
빨리 감기를 위해 리모컨을 커밋하지 않은 지점에 항상 사용 합니다. 가장 간단하고 안전한 방법입니다. 궁금합니다. 분명히 유스 케이스가 있습니다. 브랜치의 한쪽에 커밋이없는 곳에 병합 커밋을 만들고 싶은 이유는 무엇입니까?