0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gitの直近コミットの作業者の名義を改変する

Posted at

会社のパソコンが壊れてしまって、急遽貸与してもらったパソコンで作業することになった。

ら、他人のノートパソコンを使っていたので、コミットログが他人の物になってしまった。ほんとに困った。
幸い、直前のもの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

全部終わるまで、繰り返す。

  1. 修正をリモートリポジトリに反映
    すべての修正が完了したら、ローカルの履歴をリモートに反映。
git push --force

⚠️ --force を使うので、チームで作業している場合は影響が出る可能性があるため注意!

最後に、修正が適用されているか確認。

git log --oneline --author="Your Name"

正しく名義が変更されていることを確認できたら完了。
(とはいえ、きちんと書き換えられているかどうかの確認は、VSCode上の拡張機能で見て、OKとした。)

Vimで焦った

きちんと編集画面が開いたと思ったが、どうあがいてもpickをeditにできない。
ものすごく焦ったが、Vimで開いているためだった。
Vimだと、iを押すと編集モードになる。

Vimやだよ~、気持ち悪いよ~。えーん。
パソコンを貸してもらってる以上、文句言えねぇ……。
えーん……。nanoがいいよ~。
(nanoで編集すりゃいいとおもいm)

おわりに

(企業秘密を含まないようなメモの場合、)オンラインで適当に投稿しておくと、パソコンが壊れても掘り出せて何とかなるようである。ので、こうして残しておくと役に立つっぽいな。
私はまたあと何回かこのやらかしをする予定なので、記事も書いておいたのだった。

あーあー。歴戦の怒られ、やらかしメモが……。全部飛んでしまった……。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?