programing

기본적으로 빠른 전달을 해제할 수 있습니까?

abcjava 2023. 5. 26. 20:24
반응형

기본적으로 빠른 전달을 해제할 수 있습니까?

제가 사용할 때가 생각나지 않습니다.git merge보다는git rebase그리고 커밋 쇼를 하고 싶지 않습니다.기본적으로 빠른 전달이 해제되도록 git을 구성할 수 있는 방법이 있습니까?거기에 있는 사실은--ff옵션은 방법이 있다는 것을 암시하는 것처럼 보이지만, 문서에서 찾을 수 없습니다.

스레드에 아직 미결 문제가 있는 것 같습니다.전 세계적으로(즉, 모든 지점에 대해) 어떻게 수행합니까?기록을 위해 다음을 사용할 수 있습니다.

git config --add merge.ff false

...현재 리포지토리의 모든 분기에 적용됩니다.다른 사용자가 실행하지 않은 모든 리포지토리의 모든 분기에 적용하려면--global옵션(로컬 설정이 글로벌을 재정의함)을 실행합니다.

git config --global --add merge.ff false

설명서에서 다음을 참조하십시오.

merge.ff
기본적으로 Git는 현재 커밋의 하위인 커밋을 병합할 때 추가 병합 커밋을 만들지 않습니다.대신 현재 분기의 팁이 빨리 전달됩니다.false로 설정하면, 이 변수는 git에게 이러한 경우에 추가 병합 커밋을 생성하도록 지시합니다(이것은 다음과 같습니다).--no-ff선택할 수 있습니다.only로 설정된 경우 이러한 빠른 전달 병합만 허용됩니다(다음 값을 지정하는 것과 동일).--ff-only선택할 수 있습니다.

네, 있습니다.--no-ff분기별로 병합 옵션을 구성할 수 있습니다.

git config branch.master.mergeoptions  "--no-ff"

다음 항목을 추가합니다.$(REPO)/.git/config파일:

[branch "master"]
    mergeoptions = --no-ff

각주: 제 경험에 대해 말하자면, 저는 결국 빠르게 전환하는 것이 git 초보자들에게 대부분 도움이 된다는 것을 알게 되었습니다. 그러나 워크플로우와 개념에 대한 느낌이 가라앉기 시작하면 무의미한 '원격 병합 ..blarf' 유형의 커밋으로 로그 그래프가 흐려지는 것을 확실히 피하고 싶습니다.

10년 후의 각주 2: 아래의 다른 답변은 더 현대적인 구성 옵션을 제공하지만, 빈 병합 커밋은 기록을 추론하기 훨씬 더 어렵게 만들기 때문에 이 시대에 기본값(즉, 가능한 한 빨리 감기)을 유지하고 싶을 것입니다.

답의 스레드를 읽으면서 저는 다음 두 가지 옵션을 사용하게 되었습니다.

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

글로벌 환경뿐만 아니라 구성을 적용하기 전까지는 다음과 같은 답변이 효과적이지 않았습니다.

git config --global pull.ff only
git config pull.ff only

pull.는 "pull.ff"입니다.false)로 표시됨)only)

언급URL : https://stackoverflow.com/questions/2500296/can-i-make-fast-forwarding-be-off-by-default-in-git

반응형