タイトルの通りです。
ではどうすればいいのか
こういう時は慌てず、下記を参照して歴史修正をしましょう。
https://help.github.com/en/articles/removing-sensitive-data-from-a-repository
すでに消してしまった場合
この場合の解決策はGitHubへ問い合わせ中です。
ひとまずAPIキーなどは即座に変更するべきでしょう。
詳細
はじまり
パスワードを含むファイルを間違えてcommitして、しかもpushしてしまったこと、エンジニアなら一度は経験するのではないでしょうか。
ここにも一人、そういううっかりさんがいたとします。add-password
なんていう分かりやすいブランチをpushしてしまいました。
しかし幸いにもあなたは、このPRを出す前にミスに気づくことができました。
そこでこのブランチを消すために、以下の画面からブランチを削除します。
これで一安心。あなたはpasswordファイルを含まないコミットを作り、PRを出しました。
一安心・・・と思いきや
しかし数日後、Googleから「君のAPIキー漏れてるよ」と警告メールが来ます。
そんなはずはありません。そのブランチは消してある、と思いつつメールのURLを開くと...。
なんか残ってる。
URLをよく見ると、https://github.com/<リポジトリオーナー>/<リポジトリ名>/blob/<commitのsha1>/<ファイル名>
となっています。更に良く見ると画面の[Tree]のところにcommitのsha1値が入っていることがわかります。
具体的にはこんなURLです。
https://github.com/akihiro-iwata/check-gitub-feature/blob/2bd6037d68c20fcf3f53261981c0ad1152277680/password.txt
つまりブランチを消しても、その内容はGitHub上でキャッシュされ続けるため、パスワードは依然としてWeb上に公開されたままだったのでした。
結論
GitHubへパスワードを含むファイルを誤ってpushした時、そのブランチを消しても内容はキャッシュされ続ける