2022-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がもう表示されないか確認)



※本記事内容の無断転載を禁じます。
window.etereum.requestに渡すdataフィールドをABIエンコードで作成する
【Solidity】Remix IDEを使用してサーバー不要のコントラクト開発&デバッグ【Ethereum】
【Windows】Googleフォトからダウンロードした動画が音声のみで映像が再生されない場合
PostgreSQLをソースコードからインストールしてsystemdのサービスとして動かす
【Linux】mkfsコマンドでProceed anyway?と確認を求められるのを回避する
【Apache】www.のついたアクセスをすべてwww無しにリダイレクトする.htaccess設定
【Apache】www.なしのアクセスをすべてwww.へリダイレクトする.htaccess設定
【Apache】httpアクセスをすべてhttpsへリダイレクトする.htaccess設定
【Windows】MiniTool Partition Wizardで削除できないパーティションを消す&削除したファイルを復旧する
Windows版Google Driveが使用中と言われアンインストールできない場合
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Googleスプレッドシートを編集したら自動で更新日時を入れる
5chブラウザJane Styleの板一覧にゲーム板等が表示されない場合
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【Javascript】JSON配列内にある特定要素の取得法【Node.js】
LinuxからWindowsの共有フォルダをマウントする
【Linux共通】プロキシサーバーの利用設定
【Anaconda3】指定した仮想環境でJupyter Notebookを動かす