:
git pull --rebase
これが何をするかは、次のとおりです。
- あなたのツリーにあなたのコミット
- 適用の着信コミットを巻き戻し、リモート
- からアップデートを取得
- そして最後に、あなたの地元を再生するには(非プッシュ)後に入ってくるもの
を犯し、あなたがgit pull
を行っていたかのように最終的な結果は、魔法瞬時にすべての変更を行い、その後、それらを約束しました。
ローカルコミットと着信コミットの間に矛盾がある場合、通常のマージ競合解決を行う必要があります。しかし、そうでない場合、これは一般的により洗練された履歴とより少ないマージコミットをもたらすでしょう。
A
をコミットして作るから、あなたが開始するとしましょう、あなたの地元のコミットB
:あなたが引くと
A --- C --- D --- E
:
A --- B
一方、A
から始まる別の開発者がC
、D
、およびE
追加、何が起こるかは2つの発散する枝が合併されることです。あなたは最終状態、F
で終わる:
A --- C --- D --- E --- F
\--- B ---------------/
あなたがgit pull --rebase
を使用する場合は、リモートのコミットになるだろう、と、あなたの地元のコミットはそれらの後を追加します。だからあなたはこれで終わり、マージコミットはありません。
A --- C --- D --- E ---- B
(ここでも、マージ競合が発生しないと仮定。)
ケース2のようにそれを何にあなたの2つの支店を作るために使用することができますが、これを回避する方法があるはずです。特に両方のチェックインが同じ場合。 – KingKongFrog