git pull --rebase와 git pull --ff-only의 차이점


107

origin/masterhas commit A--B--C과 my local/masterhas commit 이라고 가정 해 보겠습니다 A--B--D.

사용하면 git pull --rebase어떻게 되나요?

사용하면 git pull --ff-only어떻게 되나요?

결과 커밋 트리에 차이가 있습니까?

답변:


131

git pull --rebase를 사용하면 어떻게됩니까?

git pull --rebase 대략 다음과 같습니다.

git fetch
git rebase origin/master

즉, 원격 변경 ( C)이 로컬 변경 ( D) 전에 적용 되어 다음 트리가 생성됩니다.

A -- B -- C -- D

git pull --ff-only를 사용하면 어떻게됩니까?

실패합니다.

git pull --ff-only 에 해당

git fetch
git merge --ff-only origin/master

--ff-only빨리 감을 수있는 경우에만 원격 변경 사항을 적용합니다. 남자로부터 :

현재 HEAD가 이미 최신 상태이거나 병합이 빨리 감기로 해결 될 수없는 경우 0이 아닌 상태로 병합 및 종료를 거부합니다.

로컬 및 원격 지점이 분기 되었기 때문에 빨리 감기로 해결할 수 없으며 git pull --ff-only실패합니다.


D로컬 변경에 커밋이 없으면 어떻게됩니까? 두 명령이 동일합니까?
Nico

7
예, 둘 다 A--B--C.
Gabriele Petronella

무엇을 git pull --rebase --ff-only할까요? (C & D있다 가정)
Refael ACKERMANN

2
--rebase와 결합 할 때 IIRC --ff 전용 옵션은 단순히 무시됩니다
가브리엘 Petronella을

5
@BreakingBenjamin 선형 기록을 보장하려는 경우 유용합니다. 기본적으로 pull병합 커밋을 도입 할 수 있지만 rebase 및 ff로만 작업하는 것을 선호 할 수 있습니다.
Gabriele Petronella
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.