閉じる
閉じる

あまめも

「Git」のコミットメッセージを間違えた、そんな時の修正方法

edit

こんにちは! あますた(@amaguristar)です。

自分はタイプミスをしてそのまま「Git」に登録してしまう時がたまにあります。そんな時に良く思うのが

  • 「あれ?メッセージ変更のgitコマンド覚えてない!!」

ってこと。いちいち調べ直すのも面倒なのでメモ。

 

直前のメッセージ修正は簡単

git commit --amend -m "コメント"

通常のコミットに --amendオプションを追加するだけ

たったこれだけで直前のメッセージ修正は可能です。

それ以外の修正方法

  1. rebaseで修正箇所の範囲を絞る
  2. vi を使い修正する場所を指定
  3. コミットメッセージの修正
  4. コミット修正完了処理

の4工程。

以下、git log --onelineで下記サンプルデータが出力された場合を想定

bf00154 (HEAD -> master) article-wazn-06132020
73fcb74 article-wazn-06122020
82d35f2 article-amamemo-06122020
713abd6 article-amamemo-06112020
b3189f5 article-wazn-06112020
1163b23 article-amamemo-06102020
5fbdfa5 article-wazn-06102020
3d6e7da article-amamemo-06092020
1ed4055 article-wazn-06092020
edf9aa4 article-amamemo-06082020
9535baf article-wazn-06082020
6315459 del-amamemo-06072020-imgHEIC
3d57450 article-amamemo-06072020
2df324a article-wazn-06072020

1. rebaseで修正箇所の範囲を絞る

方法は2パターン。

  • 1-1. git rebase -i HEAD~番号
  • 1-2. git rebase -i コミット識別子
1-1. git rebase -i HEAD~番号

自分を1と数えて修正したい番号を入力。上記サンプルのデータで12番目のデータであるdel-amamemo〜略〜を修正したい場合は、

git rebase -i HEAD~12

と入力。

1-2. git rebase -i コミット識別子

修正したいコミット識別子の1つ先の識別子を入力。「1-1」と同じデータを修正したい場合は、

git rebase -i 3d57450

と入力。

2. vi を使い修正する場所を指定

「工程1」で入力が成功するとviエディタが下記の感じで開きます。

pick 6315459 del-amamemo-06072020-imgHEIC
pick 9535baf article-wazn-06082020
pick edf9aa4 article-amamemo-06082020
pick 1ed4055 article-wazn-06092020
pick 3d6e7da article-amamemo-06092020
pick 5fbdfa5 article-wazn-06102020
pick 1163b23 article-amamemo-06102020
pick b3189f5 article-wazn-06112020
pick 713abd6 article-amamemo-06112020
pick 82d35f2 article-amamemo-06122020
pick 73fcb74 article-wazn-06122020
pick bf00154 article-wazn-06132020

# Rebase 3d57450..bf00154 onto bf00154 (12 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
"~/Library/Mobile Documents/com~apple~CloudDocs/Blog/.git/rebase-merge/git-rebase-todo" 38L, 1579C

ここで、修正したい場所の一番左の「pick」を「edit」に変更後保存してviエディタを終了。

viエディタの編集方法は割愛。今度機会があれば書きます。

3. コミットメッセージの修正

「工程2」で「pick」を「edit」に変更したら、メッセージを修正。修正方法は『直前のコメントの修正方法』と同じ。

git commit --amend -m "コメント"

で修正可能。

4. コミット修正完了処理

コメントの修正が完了したら忘れずに

git rebase --continue

コマンドを入力して「HEAD」を元の場所に戻す必要があります。

もし「工程2」で複数箇所「edit」にしていた場合は順番に変更可能です。その場合は、「工程3」の方法で順番にメッセージを変更して下さい。

まとめ

直前のコメントを編集する場合は、下記コマンドで修正。

git commit --amend -m "コメント"

それ以外は、

  1. git rebase -i HEAD~変更箇所の番号」 OR 「git rebase -i 識別子」で修正範囲を絞る
  2. viエディタで「pick」を「edit」に変更して目的の修正箇所を選択。
  3. git commit --amend "コメント"」でコメントを修正
  4. git rebase --continue」コマンドで終了
もし「上記工程2」で複数箇所「edit」にしていた場合は順番に変更可能。その場合、「工程3」の方法で順番にメッセージを変更して下さい。

関連記事

  1. take089-thumbnail

    WaznFilm更新】「Font Awesomeで何ができるの?…

  2. インフォ

    画面のサイズに合わせて拡大縮小する画像の簡単なCSS設定

  3. WordPressで『Twitter Cards』を設定するプラ…

  4. HPでライン風の対話型吹き出しの表示に枠を付けたい!!ってなった…

  5. アイコン

    HTMLで簡単に拡張子に合ったアイコンを設定する方法【css】

  6. ず〜と気になってたHPの文字をマーカー(蛍光ペン)でなぞった感じ…

こんなメモもありますよ♪

  1. take008-thambnail

Twitter

ページ上部へ戻る