Git で最後のコミットをアンコミットするにはどうすればいいですか?
それは...ですか
git reset --hard HEAD
または
git reset --hard HEAD^
?
ベストアンサー1
「uncommit」の意味がよくわからず、 を使用するかどうかわからない場合はgit reset
、「以前の Git コミットに戻す「」。
もっと詳しく知りたい場合はgit reset
、「「git reset」が何をするのかを平易な英語で説明していただけますか?「」。
を使用することが分かっている場合git reset
、「uncommit」の意味によって異なります。コミット操作を取り消して、他のすべてをそのままにしたい場合は、次を使用します。
git reset --soft HEAD^
コミット操作とステージングしたすべてのものを元に戻したいが、作業ツリー (ファイル) はそのまま残したい場合は、次のようにします。
git reset HEAD^
そして、実際にそれを完全に元に戻したい場合、コミットされていない変更をすべて破棄し、すべてを前のコミットにリセットします(元の質問のとおり)。
git reset --hard HEAD^
元の質問では、 ではHEAD^
ないとも尋ねられていますHEAD
。HEAD
は現在のコミット、つまり、現在チェックアウトされているブランチの先端を指します。 は、任意のコミット指定子^
に添付できる表記法で、「前のコミット」を意味します。つまり、 は現在のコミットの前のコミットであり、 はマスター ブランチの先端の前のコミットです。HEAD^
master^
こちらはgit-rev-parse ドキュメントコミットを指定する方法をすべて説明します (^
これは、数多くある方法の中の基本的な方法の 1 つにすぎません)。