2016-11-30 8 views
0

VS2015でコミットしましたが、まだプッシュしていません。その後、Git Extensionでフェッチを行い、リモートブランチの後ろに2つコミットしていることがわかりました。しかし、Git Extensionは自分のローカルコミットを表示しません。 Git Extensionでコミットハッシュを検索すると、彼はそれを見つけられません。どうして?他のプログラマーがローカル(未確定)コミットをなぜ見ることができないのですか?

git status私はリモートブランチの背後に2つのコミットがあることだけを示しています。 git log @{u}..はコンソールに何も表示しません。 git log origin/master..HEADは、フェッチされた古いリモートからのコミットのみを表示します。

私はリベースをしたいと思っていましたが、今はGit Extensionが私のローカルコミットを見ることができない場合、それは良いアイデアかどうかわかりません。

+0

このシナリオでは誰が "彼"ですか? –

+0

"he" = Git Extension – testing

+0

この質問は申し訳ありませんが、同じフォルダで作業していますか? 1つのブランチを使用していますか? – Ivan

答えて

1

git reflogを使用して、ローカルリポジトリの履歴の変更を確認してください。

コミットが見つからない場合は、別の場所に2つのリポジトリのコピーがないことを確認してください。

+0

いいえ、それは同じコピーでした。しかし、あなたはとても役に立ちました!ソリューションに興味があるなら、私の答えを見てください。 – testing

0

git reflogは私を示しています

1d63279 [email protected]{0}: checkout: moving from 9af729af1fbb639a5616528a31e7773f99f564d3 to refactor 
9af729a [email protected]{1}: commit: My missing commit 
1d63279 [email protected]{2}: checkout: moving from 0e302fee7cbb0ba1306a75e024e324291e3e361f to 1d6327972bd9ac1a585d947e634b69f891a78325 
0e302fe [email protected]{3}: checkout: moving from refactor to 0e302fee7cbb0ba1306a75e024e324291e3e361f 
1d63279 [email protected]{4}: commit: My old commit 

だから、私はその間にコミット特別をチェックアウトして、その上で働いていたようです。私の解決策はpatchです。

// create patch 
git format-patch -1 9af729af1fbb639a5616528a31e7773f99f564d3 
// show stats 
git apply --stat 0001-My-Commit-Message.patch 
// check for error before applying 
git apply --check 0001-My-Commit-Message.patch 
// three-way merge and apply the patch 
git am -3 < 0001-My-Commit-Message.patch 

これですべてが正常になり、さらに作業できます。しかし、私は古いコミットで何が起こるのか分かりません。

関連する問題