Git リポジトリと GitHub 上のリモートからファイルを完全に削除する
2023-09-24 16:33:53
質問
間違って画像のフォルダを追加してコミットしてしまいました。その後、もう一回コミットしました。
その後、私はこれらのファイルを
git rm -f ./images
を使用してそれらのファイルを削除し、再度コミットしました。
今現在、そのブランチ(master)ではさらに多くのコミットをしています。私の HEAD には、このような
./static/images
フォルダがありません。
このため、私のレポのサイズは大幅に増加しました。どうすればこれらの blob を完全に削除できますか?そして、リモートの GitHub リポジトリからも削除したいのですが。
どのように解決するのですか?
これは、あなたが探しているものです。 を無視するとファイルが削除されない . そのページを読むことをお勧めしますが、ここでは具体的なコマンドを紹介します。
git filter-branch --index-filter \
'git rm -r --cached --ignore-unmatch <file/dir>' HEAD
また、gitが作成するキャッシュから削除されたファイルをすべて削除する場合は、次のようにします。
rm -rf .git/refs/original/ && \
git reflog expire --all && \
git gc --aggressive --prune
最後のコマンドの詳細と、1つのアクションですべてを行うスクリプトは、こちらでご覧になれます。 git: ファイルやフォルダーを履歴から削除する .
もうひとつ、説明の多いリンクを紹介します。 機密データを削除する .
[編集]をクリックします。 また、このStackOverflowの質問も参照してください。 Git の履歴から機密ファイルやそのコミットを削除する .
(コマンドは
natacado
の回答からコピーしたものです)。作業コピーからすでにファイルを削除している場合は、次のようにすればうまくいくはずです。不要なファイルを追加したコミットのハッシュを見つけます。それから、そうしてください。
git filter-branch --index-filter \
'git update-index --remove filename' <introduction-revision-sha1>..HEAD
git push --force --verbose --dry-run
git push --force
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Gitのエラーについて覚えておく-すべて最新にする
-
Git error: cannot spawn ssh.の回避策。そのようなファイルやディレクトリはありません
-
Git エラー: ヒント: リモートにあなたが持っていない作業が含まれているため、更新が拒否されました ヒント: あなたが持っていない作業です。
-
コミットには何も追加されないが、未追跡のファイルが存在する解決策
-
Git: bash: cd: 引数が多すぎる
-
[解決済み] Git リポジトリのコミット履歴から大きなファイルを削除/消去する方法は?
-
[解決済み] Git の履歴から機密性の高いファイルやそのコミットを削除する
-
[解決済み] Git: リモートブランチの情報を更新する
-
[解決済み] ローカルレポとリモートレポを接続する
-
[解決済み] git add を実行してもしなくても、ブランチを切り替えたときに自分の変更点(修正、追加、削除されたファイル)が表示され続けるのはなぜですか?