origin/masterhas commit A--B--Cと私のlocal/masterhas commitがあるとしましょう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リモートの変更は、早送りできる場合にのみ適用されます。男から:
現在のHEADが既に最新であるか、マージが早送りとして解決できる場合を除き、マージを拒否してゼロ以外のステータスで終了する
ローカルブランチとリモートブランチが分岐しているため、早送りでは解決できず、git pull --ff-only失敗します。
A--B--Cます。
git pull --rebase --ff-only?(C&Dがあると仮定)
pullはマージコミットを導入できますが、リベースとffのみを使用することをお勧めします。
Dローカルの変更にコミットがない場合はどうなりますか?両方のコマンドは同等ですか?