GitLabに上げたコミットメッセージを変更する方法
はじめに
本日の業務でGitLabにあげたコミットメッセージを変更したかった。
しかし、簡単に変更することができなかった。
結局、Sourcetreeのターミナルを開いて、vimから変更した。
リバートという操作を行なって、強制コミットを行なった。
その辺の操作について書いていこう。
リバートとは
「リバート」は、特定のコミットを打ち消す新しいコミットを作る操作。
git revert <コミットID>
vimを編集する方法
iで、編集モードになる。
Escで、コマンドモードに戻る。
:wq + Enterで、vimを保存して終了する。
:q! + Enterで、vimを保存せずに終了する。
変更を反映するには強制コミットが必要
以下のような強制プッシュをすることで、ローカルの変更をリモートに反映することができた。
git push -f
ただし、他の人と共同作業をしている場合は上書きの可能性があるので、注意が必要。
Sourcetreeのターミナルでgitの勉強ができる
今回、git logをSourcetreeのターミナルで打ち込めば、gitのコミット履歴が確認できた。
git log
こんな感じで、他のgitの概念も勉強していける。
現状確認は以下。
git status
スタッシュでステージングしたものを一時退避できる
スタッシュという機能も使った。
git stash
これを行なった理由は、リバートするため。
リバートするときは、ステージングされているファイルがあるといけなかったのだ。
なので、それらを一度スタッシュしておいた。
スタッシュしたファイルを元に戻すには以下のコマンドを使用する。
git stash pop
結論 : プッシュしたコミットメッセージを変更するのに最適な方法
本日の業務では、自分しか使っていないブランチでコミットメッセージを書き換えるという目的で、前回のコミットをリバートして、強制プッシュした。
あまりお勧めできない方法だ。
このブログを書くために、GitLabのアカウントを作成して、SSHキーも作成して、GitLab上で作成した学習用のリポジトリをローカルにクローンした。
そして、一旦プッシュしたコミットメッセージを後から変更するということを行った。
それについて書いていきたい。
まずは、READMEを変更して、リモートとの差分を作ろう。

次に、「です追加」というコミットメッセージをプッシュする。


このコミットメッセージを「”です” を追加」に変更したいとしよう。
以下のコマンドを入力すると、vimなどのエディタが開く。
git commit --amend
ここに直前のコミットメッセージがある。

現在はコマンドモードなので、iで、編集できるようにする。

以下のように編集した。

escを押して、コマンドモードに戻す。一番下の「– INSERT –」が消えた。
:wq + Enterで、エディタを保存して閉じることができる。

コミットメッセージが変更されたことが確認できた。

これでプッシュを行うと、リモートとローカルの状態が違うため、以下のエラーが発生する。

hintの通り、git pullを行う。
すると再び、vimエディタが開く。最初の行にコミットメッセージが書かれている。このままで良ければ、:wq + Enterでエディタを保存して閉じる。

以下の画面になった。

git pushを行うと、以下のようになった。

コミットメッセージを変更したものと、マージしたものがある。
以下のように、git pullにrebaseのオプションをつけるとマージコミットが残らないらしい。
git pull --rebase
コメントを残す