Git で公開してはいけないものを公開してしまい、リモートリポジトリを消した話


はじめに

プログラミング初学者のため、自分の理解できている範囲内で言語化しています。
何か間違っている情報や改善点などありましたら、コメントいただけますと幸いです。🙇‍♂️

何が起きたのか

簡単にまとめると、ブランチきって作業していた際に、公開してはいけない情報を記述したまま、
コミット → プルリクエスト → マージ → ブランチ削除
まで気づかずにしてしまっていた。

原因

圧倒的gitの知識不足

学んだこと

  • 公開したくない情報を記述したまま、コミットしてはいけない。
  • ブランチは削除しても見れてしまうため、実質消せていない。

*最悪コミット・プルリクエストまでは簡単に戻せるっぽいが、マージからブランチまで削除してしまう消すことはできない

間違えてコミット・プルリクエストをしてしまったときに、解決する方法はたくさんあるので
調べる💪

特にこの方が丁寧にまとめてくださってる、本当に助かります🙇‍♂️
URL:https://qiita.com/muran001/items/dea2bbbaea1260098051#%E3%82%84%E3%82%89%E3%81%8B%E3%81%97%EF%BC%93%E4%BD%99%E8%A8%88%E3%81%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%81%97%E3%81%9F%E3%81%91%E3%81%A9%E3%82%84%E3%81%A3%E3%81%B1ignore%E3%81%97%E3%81%9F%E3%81%84%E6%99%82

試したこと

結論、私の場合はマージしてブランチの削除まで進んでしまっていたので、消すことができずリモートリポジトリごと削除した、、、😂

やったこと

ターミナル.
% git reset --soft コミットID

で公開したくない情報を記述したコミットまで戻し、履歴を上書きした

これでリモートリポジトリの<>codeでは表示されなくなったので

一見これで成功したように見えたが、リモートリポジトリのPull requestsのclosedに削除したブランチが残っていて、ここで変更履歴を見ることができた。

ここで、ブランチは完全に消すことができないことを知り、リモートリポジトリを削除することにしました。

リモートリポジトリの削除

  • リモートの設定の一番したの方に削除するためのボタンがあり、そこで削除する。
  • 削除した後は、ローカルの方でもリモートの情報を削除する必要がある
ターミナル.
xxxxxnoMacBook-Pro testapp % git remote         ---リモートの情報があるか確認
origin                            ---originという情報が残っている
xxxxxnoMacBook-Pro testapp % git remote rm origin  ---originの削除
xxxxxnoMacBook-Pro testapp % git remote        ---リモートの情報があるか確認
xxxxxnoMacBook-Pro testapp %               ---ない場合は何も出ない

これでローカルでのリモートリポジトリの削除は完了

最後に、またアプリケーションをgitに追加して完了

そのほかの対策

こちらはいただいたコメントを参考に記述しています。
コメントいただいた方、本当にありがとうございます🙇‍♂️

Githubはサポートに連絡すればプルリクエストからの参照も消してくれるそうです。
機密データをリポジトリから削除する - GitHub Docs

以下はそもそもコミットしてはいけない記述があるときに教えてくれる機能です。
未然防止になる機能なので、とても便利です。
GitHub、コード中に書いてはいけないアクセストークンを発見、通知してくれる「Secret scanning」機能、プライベートリポジトリで正式対応 - Publickey
git-secretsはじめました - Qiita
Gitリポジトリを作った後にやること - Qiita