치명적 : 빨리 감기 불가능, 중단


89

Git에서 더 이상 빨리 감기 병합을 허용하지 않는 이유는 무엇입니까? 를 사용하여 강제로 시도하면 --ff-only"치명적 : 빨리 감기가 불가능합니다. 중단 중"이라는 메시지가 표시됩니다. 에 큰 이점이 있다는 것을 알고 merge --no-ff있지만 왜 지금은 할 수 없는지 의아해합니다 --ff-only.

답변:


95

브랜치는 더 이상 병합하려는 브랜치를 직접 기반으로하지 않습니다. 예를 들어 브랜치에없는 대상 브랜치에 다른 커밋이 추가되었습니다. 따라서 빨리 감기를 수행 할 수 없습니다 (빨리 감기를 수행하려면 브랜치가 대상 브랜치를 완전히 포함해야하기 때문입니다).

대상 브랜치 ( git rebase <destination branch>) 의 맨 위에 브랜치를 리베이스하여 커밋을 재 작업하여 빠르게 포워드하거나 일반 병합을 수행 할 수 있습니다.


이것이 어떻게 가능한지? 이것은 정확하지 않습니다. 변경된 설정이어야합니다.
mathtick

3
@mathtick이 메시지에 설정되는 당신의 풀 설정에서 오는 ff명령에서git config pull.ff only
알 Duncanson

82

git pull --rebase. 다른 솔루션과 달리 대상 브랜치의 이름을 알 필요가 없습니다.


11

이 오류가 발생하는 이유는 "병합 충돌"때문입니다. 업데이트의 각 단계에서 변경 사항을 가져 오지 않고 GitHub 파일을 여러 번 편집 / 업데이트하면 병합 충돌이 발생합니다.

일반적인 경우 :-

$ git pull

참고 :-오류가 발생합니다. 치명적 : 빨리 감기 불가능, 중단

이걸로 해봐:-

$ git pull origin master --rebase

참고 :-이제이 명령 후에 병합 충돌 문제가 발생합니다. 이제 파일로 이동하여 충돌을 수동으로 해결할 수 있습니다. 병합 충돌 오류


1

빨리 감기 전용 옵션을 활성화했기 때문입니다. 여기서는 브랜치에서 가져 오기가 로컬 git에 병합 커밋을 생성하고 빨리 감기 전용 옵션은 가져 오기시 병합 커밋을 생성하는 것을 허용하지 않는다는 것입니다.

큰 팀의 경우, 많은 시간과 풀에서 오는 모든 커밋에 대해 갈등을 리베이스하고 해결하게 될 것입니다.

ff = git 로컬 구성 파일에서 한 줄만 제거하는 것이 좋습니다.

$ cd to-my-project-root-dir

$ nano .git / config

[pull]
        ff = only // remove this line
        rebase = false

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.