gitの過去コミット内容を編集する

gitの過去コミット内容を編集する

2023/08/19 22:00:00
Program
Git

git の過去コミットの内容を編集したい場合、以下の手順で実現できた。

編集したコミットハッシュ値を指定しpickからeditに編集する #

$ git rebase -i [編集したいコミットハッシュ値]^
Stopped at ccbed9b...  updated git version 1.9.x to 2.12.x
You can amend the commit now, with

  git commit --amend

Once you are satisfied with your changes, run

  git rebase --continue

上記を実施すると、git editorが起動するので、pickからeditに変更/保存し終了する

編集したいファイルを修正しコミットする #

$ emacs [編集ファイル]
$ git add  [編集ファイル]
$ git commit --amend

編集した内容でgit履歴を書き換える(rebase) #

この時、衝突した場合は、衝突箇所を編集しcommitを繰り返す必要があるので注意

$ git rebase --continue
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

Otherwise, please use 'git rebase --skip'
interactive rebase in progress; onto 55d0261
Last commands done (8 commands done):
   pick c858f1e modify global(gtags) settings
   pick 615b981 refactoring. update email address
  (see more in file .git/rebase-merge/done)
No commands remaining.
You are currently rebasing branch 'master' on '55d0261'.
  (all conflicts fixed: run "git rebase --continue")

nothing to commit, working tree clean
Could not apply 615b981... refactoring. update email address
$ git rebase --continue
Successfully rebased and updated refs/heads/master.

リモートリポジトリに反映させる #

$ git push --force origin master