1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

異なるアカウントでGitHubにpushしてしまった時の対処法

Last updated at Posted at 2020-04-29

仕事がリモートになり社用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アカウントを使い分ける方法を確認しておきましょう。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?