1. ホーム
  2. git

[解決済み] git pull --rebaseとgit pull --ff-onlyの違いについて

2022-04-24 08:36:19

質問

例えば origin/master がコミットしている A--B--C と私の local/master はコミット A--B--D .

を使用するとどうなるのでしょうか? git pull --rebase ?

を使用するとどうなるのでしょうか? git pull --ff-only ?

出来上がったコミットツリーに違いはあるのでしょうか?

解決方法は?

<ブロッククオート

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 は、リモートの変更を早送りできる場合のみ適用します。manより。

現在の HEAD がすでに最新であるか、マージが fast-forward として解決できる場合を除き、マージを拒否して非ゼロのステータスで終了します。

ローカルブランチとリモートブランチが分岐しているので、ファストフォワードで解決することはできず git pull --ff-only は失敗します。