2023-10-10
特に初期設定せず、何も考えずにレンタルサーバーなどでGitHubにcommit/pushすると、コミットしたユーザー名・Emailアドレスが意図せず流出してしまう危険性がある。git commit,pushで、GitHubのリモートリポジトリがpublicだった場合、誰がコミットしたのか見ればわかる。これを見られても問題ない名前にしっかり設定しておかないと、ローカルマシン内部で設定しているユーザー名・Emailがそのままここに表示されてしまう。
これは、ローカルマシンを使い始めの時にgit config --globalをし忘れたために起こるが、もうすでに意図しないユーザー名でcommit/pushしてしまったのが判明した場合、正しいものに過去を含めてすべて修正・pushし直さなければならない。その方法が以下。
1、まずgit configで公開しても良い正しいユーザー名/emailを設定する
ここで設定した値がGitHubでグローバルに公開されるわけだから、見られても良いものに設定する。
git config --global user.name mypublicname git config --global user.email mypublicname@example1155.jp cat ~/.gitconfig #確認
2、間違ったユーザー名でAuthor/Committerしてしまっているか確認する
.gitディレクトリが存在する対象リポジトリディレクトリに移動し、以下コマンドでログを確認する
cd my_public_repo git log --pretty=full commit 1674da875ec9f521453ca923aefff0dc7a57ede0 Author: myprivatename <myprivatename@example1155private.jp> Commit: myprivatename <myprivatename@example1155private.jp> スペルミス修正 commit d36d695e005542391d09f897910c3297bb32cef7 Author: myprivatename <myprivatename@example1155private.jp> Commit: myprivatename <myprivatename@example1155private.jp> copy initial files
myprivatename(例)という公開してはならないプライベートな名前とメールアドレスでコミットしてしまっていることを確認。pushしてしまっているなら、すでにGitHubでグローバルに公開されてしまっているので危険。これを全部修正する。
3、公開してもよい情報で過去も含めてコミット情報を上書きする
mypublicname, mypublicname@example1155.jpに一気に直す。
cd my_public_repo git filter-branch -f --env-filter "GIT_AUTHOR_NAME='mypublicname'; GIT_AUTHOR_EMAIL='mypublicname@example1155.jp'; GIT_COMMITTER_NAME='mypublicname'; GIT_COMMITTER_EMAIL='mypublicname@example1155.jp';" HEAD Rewrite 14371c71696b9330292beec785a02ba36c9209b0 (2/2) Ref 'refs/heads/master' was rewritten
4、書き換わっているか再び確認し、GitHubに強制pushする
cd my_public_repo git log --pretty=full commit 1674da875ec9f521453ca923aefff0dc7a57ede0 Author: mypublicname <mypublicname@example1155.jp> Commit: mypublicname <mypublicname@example1155.jp> スペルミス修正 commit d36d695e005542391d09f897910c3297bb32cef7 Author: mypublicname <mypublicname@example1155.jp> Commit: mypublicname <mypublicname@example1155.jp> copy initial files
見られてもよい名前・メールに直っているのが確認できたので、リモートリポジトリ=GitHubに強制的にpushして反映する。
git push -f origin master Counting objects: 202, done. Delta compression using up to 56 threads. Compressing objects: 100% (153/153), done. Writing objects: 100% (202/202), 174.58 KiB | 0 bytes/s, done. Total 202 (delta 47), reused 0 (delta 0) remote: Resolving deltas: 100% (47/47), done. To git@github.com:mypublicname/my_public_repo.git + 14371c7...1674da8 master -> master (forced update)
強制更新できたので、GitHubサイトで、committed 1 hour agoなどの情報があるリンクを見て、上記公開ユーザー名にちゃんと書き換わっているか確認する。(旧myprivatenameがもう表示されないか確認)
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
TSUKUMOのマルチGPUパソコンWA9J-X211/XTのUbuntu Server 22.04でMYCOEIROINK作成コードを実行し音声合成モデルをトレーニングする
TSUKUMOのマルチGPUパソコンWA9J-X211/XTにUbuntu Server 22.04とCOEIROINK Engineを導入する
Python venv(仮想環境作成)でError: Command returned non-zero exit status 1のエラー対処法
【Ubuntu】プロジェクトごとに複数のPythonバージョンを使い分ける
【PHP】フォーム入力を受け取り出力する
【Ubuntu】aptでインストールしたapache2にソースコンパイルしたphpをマルチスレッドモードで組み込む
【PHP】HTMLファイルを読み込んで文字列変換して出力する
TSUKUMOのマルチGPUパソコンWA9J-X211/XTにUbuntu Server 22.04とVOICEVOX Engineを導入する
【VOICEBOX Engine】403 Forbidden Origin not allowedの対処法
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
Windows版Google Driveが使用中と言われアンインストールできない場合
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
Googleスプレッドシートを編集したら自動で更新日時を入れる
Androidホームで左にスワイプすると出てくるニュース共を一切表示させない方法
【Apache】サーバーに同時接続可能なクライアント数を調整する
OpenAI API使用料金が事前支払い(チャージ)制になった【注意点】