私はリモートリポジトリからプルするローカルリポジトリを持っています。 description of git pull
から期待されている通り、git pull
だけでなく、まったく同じアクションを実行するために使用さgit fetch; git merge FETCH_HEAD
を実行:FETCH_HEADリファレンスが "git fetch"の後に正しく更新されない
説明
すると、現在のブランチにリモートリポジトリから変更を組み込みます。デフォルトモードでは、git pullはgit fetchに続いてgit merge FETCH_HEADを省略したものです。
現在、予期せず実行中のgit fetch
は、FETCH_HEAD
の参照を正しく更新しませんでした。 FETCH_HEAD
は古いコミットに固執しました。 git fetch
を実行すると、リモート追跡されたブランチに対するすべての変更がダウンロードされますが、FETCH_HEADは実行されているブランチに関係なく変更されません。
# currently in branchone
> git fetch
# branchone is up to date since...
> git rev-parse branchone
593539e8a98ba5980d4b645db3b0f506bb9b6a2c
# ...its in the same commit as the remote branch
> git rev-parse origin/branchone
593539e8a98ba5980d4b645db3b0f506bb9b6a2c
# however FETCH_HEAD shows something different
> git rev-parse FETCH_HEAD
37301df96597ac037f8e7e846fea6fc7df77bea5
git pull
は依然として正しいタスクを実行します。しかしgit fetch; git merge FETCH_HEAD
を実行すると、FETCH_HEAD
が間違ったコミットを指しているので、何か違うことになります。
git fetch
の動作に迷惑をかける可能性のある設定や問題はありますか?
残念ながらありません。でも、リポジトリをresetingに非常に古いリビジョンはでは何も変わりません'git fetch'と' FETCH_HEAD'の動作。 – LopSae
もう一つは、ローカルリポジトリ全体を削除して、もう一度クローンしてください。そうでなければ、あなたに何か間違っているかを調べようとしています。ローカルリポジトリ.. – aliasgar
新しいリポジトリでは、動作は同じです。 'FETCH_HEAD'が指し示すコミットは、' .git/FETCH_HEAD'ファイルに最初に現れるコミットです。私はまだwhの疑いが残っている以前は 'git fetch; git merge FETCH_HEAD'はどのブランチでも完全に機能しました。 – LopSae