# Git commit 取り消し
Git でバージョン管理しているなら、誰でも commit した内容を取り消すことがあるでしょう。
commit で追加することが多いけど、取り消しがあまり使わないので、忘れやすいもの。
commit はファイルやディレクトリの追加・変更を、リポジトリに記録する操作です。
commit を実行することで、差分を記録してくれるコミット(リビジョン)と呼ばれるものが作成されます。
# コミット取り消し
# コミットだけを取り消す
git reset --soft HEAD^
# コミットだけを取り消す & 内容もリセット
git reset --hard HEAD^
--soft
オプション ワークディレクトリの内容そのまま、コミットだけを取り消す--hard
オプション ワークディレクトリの内容リセット、コミット取り消すHEAD^
直前のコミットを意味するHEAD~{n}
n 個前のコミットを意味する
HEAD~{n}
の n の数がわからない時は、git reflog
コマンドを使います。
git reflog 使って過去の操作履歴(HEAD の動き)を確認できます。
$ git reflog
ac3752c (HEAD -> master) HEAD@{0}: commit: :construction:
8492133 HEAD@{1}: commit (amend): :bug: fix
f8fa002 HEAD@{2}: commit (amend): :bug: fix
# commit 前の git add した変更を取り消し
git add したファイルの更新をインデックスから削除、インデックスを HEAD の状態へ戻す
git reset .
git reset HEAD .
# 直前のコミットメッセージを変更
誤ってエンター押してしまった!誤ったコミットメッセージを commit した時に修正で使えます。
git commit –-amend
amend は修正する、改める、変えるという意味します。
類似英語 change, revise, alter, reform,change, alter, vary, exchange, convert,correct, rectify, straighten, redress, adjust, amend
# よく使う git commit オプション
省略オプション | フルオプション | 意味 |
---|---|---|
-a | --all | git add 省略して変更ファイルすべてをコミット |
--interactive | ファイル単位で選択しながらコミット | |
--patch | 個々の変更内容を確認しながらコミット | |
--amend | 直前のコミットメッセージをやり直す | |
-m | --message | コミットメッセージを指定 |
2022-02-16