ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。
記事のバージョン: GitHub.com

作者情報の変更

既存のコミットに記録された名前やメールアドレスを変更するには、Git リポジトリの履歴全体を書き換える必要があります。

警告: このアクションはリポジトリの履歴を乱します。 リポジトリを他の人と共同で利用している場合、公開済みの履歴を書き換えるのは好ましくない行為です。 これを行うのは、緊急時のみにとどめるべきです。

スクリプトによるリポジトリの Git 履歴の変更

作者またはコミッターのフィールドに、古いメールアドレスがあるものを正しい名前およびメールアドレスに変更するスクリプトを作成しました。

メモ: このスクリプトを実行すると、そのリポジトリの全コラボレータの履歴が書き換えられます。 この手順を実行した後、フォークやクローンをしている人は書き換えられた履歴をフェッチし、書き換えられた履歴にローカルの変更をすべてリベースする必要があります。

このスクリプトを実行する前に、以下を準備する必要があります:

  1. ターミナルターミナルGit Bashターミナル を開いてください。

  2. 以下のコマンドで、リポジトリの、新しいベアクローンを作成します:

    git clone --bare https://github.com/user/repo.git
    cd repo.git
  3. スクリプトをコピーして貼り付けます。以下の変数については、収集した情報に基づいて置き換えてください:

    • OLD_EMAIL (古いメールアドレス)
    • CORRECT_NAME (正しい名前)
    • CORRECT_EMAIL (正しいメールアドレス)

      #!/bin/sh
      

    git filter-branch --env-filter '

    OLD_EMAIL="your-old-email@example.com" CORRECT_NAME="Your Correct Name" CORRECT_EMAIL="your-correct-email@example.com"

    if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" fi if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] then export GIT_AUTHOR_NAME="$CORRECT_NAME" export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" fi ' --tag-name-filter cat -- --branches --tags

  4. [Enter] を押してスクリプトを実行します。

  5. 新しい Git 履歴に間違いがないかレビューします。

  6. 以下のコマンドで、修正した履歴を GitHub にプッシュします:

    git push --force --tags origin 'refs/heads/*'
  7. 以下のコマンドで、テンポラリなクローンをクリーンアップします:

    cd ..
    rm -rf repo.git

担当者にお尋ねください

探しているものが見つからなかったでしょうか?

弊社にお問い合わせください