0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gitでコミットした後にメッセージを修正する

Posted at

環境

Ubuntu 20.4
Git 2.25

はじめに

コミット(git commit)した後でもメッセージを修正することができます。修正するコマンドは、状況に合わせて、2種類のコマンドがあります。

  • 直前のコミット(HEAD)に対して修正する
  • 過去のコミット(HEAD以降)に対して修正する

直前のコミットに対して

コマンドの雛形は次のようになります。

$git commit --amend -m "修正後のメッセージ"

現在のログの状況です。

$git log --oneline
7869790 (HEAD) abc
ce9d4dd ab
4c0a5a0 aa

直前にコミット(HEAD)したメッセージを修正します。

$git commit --amend -m "修正したよ"
[detached HEAD 86b8012] 修正したよ

abc(修正前)→修正したよ(修正後)に変更されました。

$git log --oneline
86b8012 (HEAD) 修正したよ
ce9d4dd ab
4c0a5a0 aa

メッセージは何度も修正することができます。

$git commit --amend -m "再度、修正したよ"
[detached HEAD ce0a15d] 再度、修正したよ

ログを確認すると、修正したよ(修正前)→再度、修正したよ(修正後)に変わりました。

$ git log --oneline
ce0a15d (HEAD) 再度、修正したよ
ce9d4dd ab
4c0a5a0 aa

過去のコミットに対して

現在のログの状況です。

$log --oneline
20e66d5 (HEAD) abb
effbad7 abab
776800d a+b+c+d+e
45a20eb a+bb###
2ee0155 a

HEAD以降の、3つの履歴をviで表示します。

$git rebase -i HEAD^^^

git logでログを表示すると、履歴は上から下に、新しい履歴から古い履歴の順に表示されますが、viで表示される履歴は、上から下に、古い履歴から新しい履歴の順に表示されます。viで、修正したい履歴の1行をpick→editに修正します。修正は複数行修正できてしまいますが、1行だけにします。ここでメッセージを修正しても反映されません。

# 修正前
pick 776800d a+b+c+d+e
pick effbad7 abab
pick 20e66d5 abb

# 修正後
edit 776800d a+b+c+d+e
pick effbad7 abab
pick 20e66d5 abb

更新してviを終了します。この時点でログを表示すると、editに修正した履歴がHEADになっています。一瞬焦りますが、それより新しい履歴は一時的に非表示になっているだけで、削除されたわけではありません。この後、復活します。

$git log --oneline
776800d (HEAD) a+b+c+d+e
45a20eb a+bb###
2ee0155 a

editした履歴に対し、修正後のメッセージを指定します。

$git commit --amend -m "a+b+c+d+e 修正したよ"

この時点でログを表示すると、新しいメッセージが反映されます。

$git log --oneline
b40f220 (HEAD) a+b+c+d+e 修正したよ
45a20eb a+bb###
2ee0155 a

ここで、履歴の再構築が行われます。

$git rebase --continue

修正したメッセージが反映された状態で、ログが元に戻りました。

$git log --oneline
8b50340 (HEAD) abb
d651247 abab
b40f220 a+b+c+d+e 修正したよ
45a20eb a+bb###
2ee0155 a

備考

参考記事
https://www.granfairs.com/blog/staff/git-commit-fix

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?