kazu_1995’s diary

北の高専→大学生のブログ.若干同じ学校の人向けかも......?

Gitのコミットメッセージ編集,コミット削除

忘備録.

  1. Git Bashを起動して,ローカルリポジトリの作業ディレクトリへ移動
  2. git rebase -i HEAD~3 (3 : 直前3コミット分の修正)
  3. エディタが起動するので(defaultではVim),コミットメッセージを編集するときは当該コミットの行頭"pick"を"edit"に修正(キー"R"),コミットを削除するときは行全体を削除(キー"dd")
  4. 保存して退出(キー":wq")
  5. (コミットメッセージを編集するときだけ)git commit --amendで書き換え
  6. git rebase --continue
  7. 5と6とを編集したい行数分繰り返す,これでローカル分は終了
  8. このままではリモートとローカルとで不整合が生じるため,git push -f originでリモートリポジトリに強制push,これでリポジトリにも反映される
  9. (万一何かミスが起きたら)git fetch origin, git reset --hard origin/masterを実行して強制的にローカルの中身をリモートから引っ張ってくる

参考

古いコミットを書き換える: 歴史修正主義者のための git rebase -i 入門 - 学習する機械、学習しない人間

反則技 git push -f - Qiita

gitでリモートのブランチにローカルを強制一致させたい時 - Qiita