Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Git | git commit --amend でひとつ前のコミットをやりなおす

概要

git commit --amend でひとつ前のコミットをやりなおす

詳細

1つファイルが抜けていた。
コミットコメントを間違えた。
なんていうときに、

git commit --amend

を利用することで、ひとつ前のコミットをやり直すことができます。

コミットコメントだけ変更したい場合

例えば hoge.txt を変更して、「change hoge.txt」とコメントしようとしたら間違えて
「change hige.txt」とコメントしたとします。

間違った状態のログは以下。

$ git log -1
commit 0034615cacddcda033afe3a3d7f9382fc3676e04
Author: <"ユーザー名">
Date:   Tue Jun 17 23:22:28 2014 +0900

    change hige.txt
git commit --amend -m 'change hoge.txt'

無事変更されました。

$ git log
commit ab40d1b01857ba14029417fb46b400237c9e9ea2
Author: <"ユーザー名">
Date:   Tue Jun 17 23:22:28 2014 +0900

    change hoge.txt

追加でコミットしたいファイルがある場合

例えば hoge.txt だけコミットしたが、hige.txtも一緒にコミットしたかった場合。

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   hige.txt
#

$ git log -1 -p
commit b68eb91b03dc4443774b1e04d105feee354bd4c9
Author: <"ユーザー名">
Date:   Tue Jun 17 23:31:39 2014 +0900

    add hoge.txt, hige.txt

diff --git a/hoge.txt b/hoge.txt
new file mode 100644
index 0000000..2262de0
--- /dev/null
+++ b/hoge.txt
@@ -0,0 +1 @@
+hoge

直前のコミットにhige.txtを滑り込ませます

git commit --amend -m "add hoge.txt, hige.txt"
$ git log -1 -p
commit 8ed8041c647cce36087f11c3cd0eabdf2e6b4445
Author: <"ユーザー名">
Date:   Tue Jun 17 23:31:39 2014 +0900

    add hoge.txt, hige.txt

diff --git a/hige.txt b/hige.txt
new file mode 100644
index 0000000..9e4f510
--- /dev/null
+++ b/hige.txt
@@ -0,0 +1 @@
+hige
diff --git a/hoge.txt b/hoge.txt
new file mode 100644
index 0000000..2262de0
--- /dev/null
+++ b/hoge.txt
@@ -0,0 +1 @@
+hoge