2014-01-10 3 views
11

git commitを使ってコミットしたディレクトリにローカルな変更がありました。後で、間違って私の変更が私のビルドを破ったことに気付きました。だから私は "git reset --soft"をレポにしました。 しかし、私は、すべてが元に戻った変更をバックアップしなかったので、私は欲しがっていた新しい機能を含んでいたので、私は台無しです。 "git reset --soft"操作を取り消して私がコミットした変更を取り戻す方法についての助け。私の変更を元に戻すにはgit reset --softを元に戻すには?

+1

前回のコミットは依然としてreflogに存在するはずです。しかし、ソフトリセットを行った場合でも、作業コピーに変更が残らないようにしてください。 – cHao

+0

http://stackoverflow.com/questions/2510276/undoing-git-reset –

+0

こんにちは、ポインタのおかげで。私がちょうど分かったことは、私がローカルファイルのいくつかのために "git add"をするのを忘れていたことです。だから私が実際にコミットしたときに、「ステージングされた」フェーズにあったローカルファイルのすべての変更がコミットされ、ステージングされない変更が失われました。今、私は完全に挫折しているようです。退出はありますか? – dennis

答えて

28

コミットIDにリセットする必要がありますgit reset _Your_Hash_、git reset --softだけで、インデックスや作業ツリーではなくリセットします。

btwあなたはgit reflogであなたのコミットを見つけるでしょう。

+0

私はまだ 'git status'にたくさんの変更があります。 'git reset --soft'の前には存在しなかったので、一般的なundo-this-gitコマンドのようにこの答えは不完全なようです。 – jozxyqk