はじめに
Gitでgit commit --amendコマンドを使ってコミット内容を修正したものの、間違えて上書きしてしまった場合、元の状態に戻したいことがあります。本記事では、git commit --amendを取り消す方法について、具体的な手順を解説します。
手順
以下の手順で、git commit --amendの変更を取り消すことができます。
手順1: git reflogで過去のコミットを確認
まず、git reflogコマンドを実行して、過去のコミット履歴を確認します。HEADの過去の状態を確認し、戻したい状態の番号を確認しましょう。
git reflog
git reflogの出力例
abc1234 HEAD@{0}: commit (amend): Update README
def5678 HEAD@{1}: commit: Initial commit
この例では、HEAD@{1}がamend前の状態です。
手順2: git reset --softで特定のコミットに戻す
戻したいコミットを確認したら、git reset --softコマンドを使ってその状態に戻します。例えば、上記の例でHEAD@{1}に戻すには、以下のコマンドを実行します。
git reset --soft HEAD@{1}
これで、amendを取り消した状態に戻すことができます。
手順3: 状態を確認
git logを実行して、元の状態に戻っているか確認しましょう。
git log
注意点
-
git resetは慎重に使用
--hardオプションを使うとファイルも元の状態に戻ってしまうため、通常は--softを使用することをおすすめします。 -
バックアップを取っておく
取り消し操作はリスクが伴うため、事前に必要なファイルのバックアップを取っておくと安心です。
エラーが発生した場合
もしgit resetがうまくいかない場合、以下の手順を試してみてください。
-
git statusで状態を確認 - コマンドがうまくいかない場合は、再度
git reflogでコミットの状況を確認
まとめ
git commit --amendで行ったコミットの上書きを取り消す方法を紹介しました。この手順を覚えておくことで、誤ってコミットを上書きしてしまった場合でも簡単に元に戻すことができます。