LoginSignup
162
135

More than 5 years have passed since last update.

typoしてpushしてしまったコミットコメントを修正してpushしなおす方法

Posted at

はじめに

チーム内の共有ブランチから自分の作業ブランチを切って作業していた際、
コミットコメントを打ち間違えてしまったのでコメントを修正します。
コミットの履歴の改変になるので作業は注意をしながら行います。
また、共有ブランチでは行わないようにしてください。

コミットをやり直す方法

使用するコマンド

git commit --amend

直前にしたコミットをやり直します。
前回のコミットにファイルの追加を行ったり、コミットコメントの変更を行ったりできます。

使用例

たとえば以下のようなコミットがあったとします。

commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Author: xxxx <xxxx@xxxx.com>
Date:   Wed Aug 26 12:57:24 2015 +0900

    Added text1.txt

A       sample/text1.txt

上記のコミットにtext2.txtを追加して、コミットを修正するには以下のようにします。

$ git add text2.txt
$ git commit --amend -m "Added text1.txt & text2.txt"
[sample-branch 7448937] Added text1.txt & text2.txt
 2 files changed, 2 insertions(+)
 create mode 100644 sample/text1.txt
 create mode 100644 sample/text2.txt

すると下記のようにコミットが修正されていることがわかります。

commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Author: xxxx <xxxx@xxxx.com>
Date:   Wed Aug 26 13:00:53 2015 +0900

    Added text1.txt & text2.txt

A       sample/text1.txt
A       sample/text2.txt

今回はコミット内容はそのままでコミットコメントのみ修正します。
git add でファイルの追加はせずに git commit --amend を行い、コメントの修正を行いました。

リモートリポジトリーに再pushする方法

ローカルでの編集が終わったのでリモートにpushしようとしましたが、ローカルのコミットを改変したためリモートとローカルに不整合が生じてしまいpushに失敗してしまいます。

これを解決するために強制的にローカルのブランチをリモートに上書きできるコマンドを実行します。
強制的に自分の変更をリモートに反映させるため操作を行う際は十分に注意します。
※共有のブランチでこの作業は絶対しないようにしてください。

使用するコマンド

git push -f [repository] [branch]
オプション -f を付けることで強制的にpushできます。

使用例

$ git push -f origin xxxx
Counting objects: 1, done.
Writing objects: 100% (1/1), 183 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To xxxxxxxx
 + xxxxxxx...xxxxxxx xxxx -> xxxx (forced update)

これで今回の変更をリモートにも適用することができました。

参考サイト

【派閥別】Gitのコミットを間違えたときの対処法まとめ
[git reset (--hard/--soft)]ワーキングツリー - Qiita

162
135
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
162
135