会社のパソコンが壊れてしまって、急遽貸与してもらったパソコンで作業することになった。
ら、他人のノートパソコンを使っていたので、コミットログが他人の物になってしまった。ほんとに困った。
幸い、直前のもの3つ分を何とかすればよかった。
Gitのコミット履歴を修正して、直近3つのコミットの名義を変更する手順 をメモしておく。
Gitの直近コミット名義を変更する
まず、Git のコンフィグを設定し直す。
自分の名義を設定する
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
インタラクティブリベースを開始
直近3つのコミットを修正するため、以下のコマンドを実行。
3という部分は適宜、直したいコミットの数に応じて変更すること。
git rebase -i HEAD~3
以下のようなログのエディタが開いた。
(内容は、改変してある)
pick a1b2c3d 修正:ログ出力のフォーマットを統一
pick e4f5g6h 追加:CLIのオプションを改善
pick i7j8k9l 変更:APIのリクエストパラメータを整理
⬇ すべての pick を edit に変更
edit a1b2c3d 修正:ログ出力のフォーマットを統一
edit e4f5g6h 追加:CLIのオプションを改善
edit i7j8k9l 変更:APIのリクエストパラメータを整理
編集が終わったら、保存してエディタを閉じる。
1つ目のコミットの修正
1つ目のコミットの修正モードになっているので、以下のコマンドを実行:
git commit --amend --author="Your Name <your.email@example.com>"
※ Your Name <your.email@example.com> をあなたの名前とメールアドレス に置き換えてください。
できたら、次へ。
git rebase --continue
それでまた、名義を書き換える。
git commit --amend --author="Your Name <your.email@example.com>"
できたら、次へ。
git rebase --continue
全部終わるまで、繰り返す。
- 修正をリモートリポジトリに反映
すべての修正が完了したら、ローカルの履歴をリモートに反映。
git push --force
⚠️ --force を使うので、チームで作業している場合は影響が出る可能性があるため注意!
最後に、修正が適用されているか確認。
git log --oneline --author="Your Name"
正しく名義が変更されていることを確認できたら完了。
(とはいえ、きちんと書き換えられているかどうかの確認は、VSCode上の拡張機能で見て、OKとした。)
Vimで焦った
きちんと編集画面が開いたと思ったが、どうあがいてもpickをeditにできない。
ものすごく焦ったが、Vimで開いているためだった。
Vimだと、iを押すと編集モードになる。
Vimやだよ~、気持ち悪いよ~。えーん。
パソコンを貸してもらってる以上、文句言えねぇ……。
えーん……。nanoがいいよ~。
(nanoで編集すりゃいいとおもいm)
おわりに
(企業秘密を含まないようなメモの場合、)オンラインで適当に投稿しておくと、パソコンが壊れても掘り出せて何とかなるようである。ので、こうして残しておくと役に立つっぽいな。
私はまたあと何回かこのやらかしをする予定なので、記事も書いておいたのだった。
あーあー。歴戦の怒られ、やらかしメモが……。全部飛んでしまった……。