2011-04-13 9 views
3

私のgit-fuが説明できない動作が見られました。コミットハッシュがローカルとリモートで異なる

ローカルブランチの最後のコミットは、トラッキングしているリモートのものに表示されません。何もローカルにコミットされていないとやって:

$ gitのdiffの支店名の由来/支店名を

が空 git pullをアップしますまた、私の枝がすでに最新であると言います。

git pullが偽のコミット(マージコミット)を生成したようですが、なぜそれが分かりません。 git pullが完了すると、アプリケーションサーバに同じコミットハッシュを持たせる必要があるので、これは特に重要です。

明白なことは何もありません。問題の内容を特定するのに役立つ追加情報

は何が起こっていることは、あなたが(あなたがマスターブランチにあったと仮定した場合)、暗黙的に git fetch && git merge origin/masterない git pullを使用していることである

+0

'git log origin/branch-name branch-name'を試してください。 –

答えて

2

ありがとうございます。空のコミットは実際には空ではありません。競合があった場合は、それらを解決してからファイルを追加してコミットする必要があります。 diffはあなたの紛争解決を表示します。マージに矛盾がない場合、diffはgitkでそれを見ているときに何も表示しません。

これを避けるには、明示的にgit fetchを実行し、変更をリモートブランチ(たとえばorigin/master)でマージまたはリベースします。

git pull --rebaseでリベースすることができます。設定を変更して、プルのデフォルトの動作にすることもできます。

これが役に立ちます。

関連する問題