LoginSignup
0
0

More than 3 years have passed since last update.

過去のコミットログ中のメアド情報をダミーメアドに変更したい

Last updated at Posted at 2019-10-19

概要

  • githubの個人リポジトリでコミットした中に個人メアドが含まれている事に気が付いたので、ダミーメアドに書き換えたいなーと思って試行錯誤。
  • 個人のリポジトリなら良いけど、チームとか複数人で使ってるリポジトリでは絶対にやらない方が良い。
  • リモートへ適用する場合は責任をもってくれぐれも慎重に。

やった事

  • githubの用意してくれるダミーアドレスを取得
  • 変更したいリポジトリをローカルにclone
  • 過去のコミットログのAutherとEmailをごっそり書き換える
  • 強制Pushで上書き
  • ローカルgit設定のメアドをダミーに変える

githubの用意してくれるダミーアドレスを取得

https://help.github.com/ja/articles/blocking-command-line-pushes-that-expose-your-personal-email-address
を参考に確認。

 Keep my email address private. で発行されるメアドをコピーしておく
${githubID}@users.noreply.github.com
みたいなアドレス。以下 ${ダミーメアド}
  • 同じ画面で Block command line pushes that expose my email.を設定すると、ダミーメアド以外のメアドがコミットログにあると githubへPushできなくなるっぽい。
  • 後でPushできなくなってハマっても面倒なので忘れないうちに以下でローカルgit設定のメアドをダミーメアドに変更して置く。
  • https://help.github.com/ja/articles/setting-your-commit-email-address を参考に設定
git config global user.email ${ダミーメアド}

メアドを変更したいリポジトリをローカルにclone

clone ${リポジトリ} ${ディレクトリ}

# 転ばぬ先のバックアップとして、違うディレクトリ名でも同じリポジトリをcloneしておくと安全
clone ${リポジトリ} ${ディレクトリ}.bkup

過去のコミットログの情報をごっそり書き換える

cloneしたディレクトリへ cdしコミットログの状態を確認

git log

githubでコピーしたダミーメアドを下記のコマンドで上書き設定する

git filter-branch -f --env-filter \
    "GIT_AUTHOR_NAME='${変更後のAUTHER_NAME}'; \
     GIT_AUTHOR_EMAIL='${ダミーメアド}'; \
     GIT_COMMITTER_NAME='${変更後のCOMMITTER_NAME}'; \
     GIT_COMMITTER_EMAIL='${ダミーメアド}';" \
     HEAD

書き変わったか確認

git log

強制Pushで上書き

git push -f remote origin

やっちまったなーという時は、バックアップしてあればバックアップしたディレクトリに移って手を加えずにoriginへ強制Pushすれば作業前の状態に戻せるとは思うけど慎重に作業する。

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