2016-07-22 9 views
1

私は間違いをしたので、私はundo the last commitにする必要がありました。最後のgitコミットの修正を

通常の手順は次のとおりです。

git reset --soft HEAD~ 
// make changes... 
git commit -c ORIG_HEAD 

は、しかし、私は事故によってこれをしなかった:それは同等

git reset --soft HEAD~ 
// make changes... 
git commit -m "Some new message"  // <-- shouldn't have done this!! 

ですか?そうでない場合は、どのような影響があり、どのように(私は)「元に戻す」を元に戻すことができますか?

+1

どちらのシナリオでもコミットが作成されますが、最初のケースでは、単にORIG_HEADからログとオーサー情報を再利用するだけです。明確にするために、機能的に言​​えば、どちらも同じコミットになります。コミットしたくない場合は、元に戻してください。 –

+0

@TimBiegeleisenもしそれらが同じで、そのまま維持していれば、私はそれを使わなかったので、特別な 'ORIG_HEAD'はどうなるでしょうか?別の言い方をすると、将来私が元に戻す必要がある場合、その存在は問題になるでしょうか? –

答えて

1

元のフォーラムの投稿に記載されている方法と方法の違いは、新しい作成者と情報を使用して新しいコミットを作成することです。しかし、あなたが古いコミッターなので、とにかくメッセージを変更しなければ、これは何も変わりません。

あなたがORIG_HEADを削除したい場合は、以下のコマンドでそれを行うことができます。

rm -f $GIT_DIR/ORIG_HEAD 
# or 
rm -f .git/ORIG_HEAD 

それは文句を言わないが、それを持つあなたに害を行いますが、それは良い行いませんので、それを削除してもいいかもしれませんそこ。同様の操作を行う場合は、単に新しいORIG_HEADによって上書きされます。

+0

何とか 'ORIG_HEAD'を削除すべきですか?将来的にある時点でもう一度 "元に戻す"必要がある場合。 –

+0

「...それは単に上書きされます...」ええ、それは私が思ったものですが、確かではありませんでした。ありがとう。 –

関連する問題