仕事がリモートになり社用PCを持ち帰ったことで、休日も社用PCでgit操作をするようになったときに、やらかしてしまいました。
仕事中に、個人用のgitから会社用のgitに切り替えるのを忘れてしまい、push。
GitHub上で確認したところ、自分の個人アカウントが表示されていて赤面。
こちらのサイトを参考に、少し修正を加えて解決することができました。
解決方法
特定のAuthor名だけを指定して変更した方法。
git filter-branch --commit-filter '
if [ "$GIT_COMMITTER_NAME" = "<変更前の名前>" ];
then
GIT_AUTHOR_NAME="<変更後の名前>";
GIT_AUTHOR_EMAIL="<変更後のメールアドレス>";
GIT_COMMITTER_NAME="<変更後の名前>";
GIT_COMMITTER_EMAIL="<変更後のメールアドレス>";
git commit-tree "$@";
else
git commit-tree "$@";
fi
' -- HEAD~3..HEAD
最後の行、-- HEAD~3..HEAD
というのは、過去直近の3コミット分を修正する書き方です。
最初は対処を3つに絞って、変更が書き換えられてるかgit log
で確認しましょう。
その後、-- HEAD~3..HEAD
の部分を適宜変更して修正したい範囲を広げましょう。
- すべて修正したい場合は、
-- HEAD
- 特定のコミットから今までのコミットを修正したい場合は、
<コミットのSHA-1>...HEAD
(SHA-1
とはf2666d52ad
のようなコミットIDのことです。)
git logでAuthor名が変更されていることを確認します。
その後、 git push
して、GitHub上でもAuthorが書き換わっているか確認してみましょう。
注意点
最初にWARNING:~~
と出ますが、特に気にしないで良さそうです。
参考にした記事では、スペースがあるとエラーになってしまうとありましたが、私の場合はスペース追加しなければずっとsyntax error
を吐き出されてしましました。
syntax error
はが出た場合、エラー文をよく読んで指摘箇所の前後のスペースを疑ってみましょう。
備考
個人アカウントを晒してしまうというヤラカシを再発させないためにも、GitHubアカウントを使い分ける方法を確認しておきましょう。