36

機能ブランチを完了した後、途中でgit rebase -i誤ってすべてのコミットを削除してしまいました。完全にはわかりませんが、コミットを押しつぶす代わりに、エントリ全体をコミット メッセージに置き換えたのではないかと思います。

http://shafiulazam.com/gitbook/4_interactive_rebasing.html言います:

インタラクティブなリベースができる最後の便利なことは、コミットを削除することです。コミット行に 'pick'、'squash'、または 'edit' を選択する代わりに、単に行を削除すると、履歴からコミットが削除されます。

私の質問は: これを元に戻す/元に戻す方法はありますか?

4

2 に答える 2

75

リベースを行ったばかりの場合は、次のように試すことができます

git reset --hard ORIG_HEAD

Jakub Narębskiの 詳細として:

ORIG_HEADの以前の状態でありHEAD、危険な動作をする可能性のあるコマンドによって設定され、それらを簡単に元に戻すことができます。
Git に reflog があるため、あまり役に立ちません:は(は常に の最後の値、危険な操作の前の の最後の値HEAD@{1}) とほぼ同等です。ORIG_HEADHEAD@{1}HEADORIG_HEADHEAD

リベース以降にいくつかの操作を実行した場合でも、 reflogは役に立ちます。

于 2011-03-21T08:01:03.183 に答える
15

「git reflog」を実行して、古い HEAD を取り戻すことができます。

于 2011-03-21T08:14:47.540 に答える