こんにちは。
まず、リポジトリに対してgit push -f
する権限は持っていますか?持っていないなら諦めるか、リポジトリの管理者に相談して下さい。
質問の「削除した」というのは「挿入したくないデータを削除する変更を加えて新たにcommitしてpushした」ということですね?
こういう状況では、reset
コマンドを使用し、ブランチの参照先を「意図しない変更を加える前のコミットに付け替える」方法で対処します。
ログを確認して、以下の状態になっていると仮定します。
--- (コミットA) --- (コミットB) --- (意図しない変更) --- (元に戻す変更)
^ branchA
git reset --hard <コミットBのsha1>
というコマンドで、
--- (コミットA) --- (コミットB) ... (意図しない変更) ... (元に戻す変更)
^ branchA
という状態に変更することができます。(意図しない変更)以降のコミットは参照が辿れなくなるため非表示になります。
このあと、
git push -f
コマンドで、リモートのブランチを強制的に上書きすることで履歴の取り消しが完了します。
補足
gitのcommitは、基本的に一度作ったら変更不可能かつ長い期間git内に残り続けます。
ログ上からは完全に削除されたように見えても、一定の期間はcommitのIDを直打ちすることでアクセスできてしまいます。
githubに作成したcommit(リモートはpush時に作成される)の中に、仮に「パスワード」「外部サービスの認証キー」等のセキュリティクリティカルなデータを含んでしまった場合、github上から対象のデータを「削除」する手段が提供されていないため、上述の対処を行ったあと、githubサポートに直接問い合わせて、「commitオブジェクトの完全な消去」を依頼する必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。