はじめに
この投稿は強制プッシュなど行なっていますので、特にチーム開発などをしている方は十分に注意してください。
ブランチをpushした後にブランチ名はコミットメッセージを変更したい場合が時々あり毎回忘れては調べてを繰り返していたので備忘録用にまとめます。
ブランチ名の変更
git checkout ブランチ名を変更したいブランチ
git branch -m 新しいブランチ名
git push origin 新しいブランチ名
これでブランチ名の変更は完了です。
※正確には変更ではなくブランチ名を変更したブランチを新たにpushします。
なので名前を変更する前のブランチも残っているので不要な場合は削除する
必要があります。
コミットメッセージの変更
最後のコミットメッセージを変更する場合
最後(直前)のコミットメッセージを変更する場合は簡単で
git commit --amend -m "新しいコミットメッセージ"
でコミットメッセージを変更できます。
次はpushするのですが、ここからが問題で変更した次はリモートにpushしたコミットを変更した場合は--force
オプションを使用して強制的にpushする必要があります。
なので、pushするときは注意してください。
git push origin ブランチ名 --force
最後から2番目以降のコミットメッセージを変更する場合
まずは
git rebase -i HEAD~2
で最後から2番目までのコミット情報を表示します。
HEAD~
の後ろは表示させたいコミットに合わせて変更します。
表示させたいコミットはgit log --oneline
で探すのが楽かと思います。
git rebase -i HEAD~2
を実行すると、
pick 1a64XXX 変更前のコミットメッセージ2
pick 8ba5XXX 変更前のコミットメッセージ1
エディタで変更したいコミットの先頭のpickをeditに変更して:wq
で保存して閉じます。
pick 1a64XXX 変更前のコミットメッセージ2
edit 8ba5XXX 変更前のコミットメッセージ1
次にコミットメッセージを変更します
git commit --amend
エディタでeditにしたコミットの情報が表示されるので、新しいコミットメッセージに変更して:wq
で保存してエディタを閉じます。
次にrebaseを続行します
git rebase --continue
リモートにpush済みの場合は強制プッシュが必要なので--force
オプションをつけてpushして完了です。
git push origin ブランチ名 --force