Git:履歴コミットからファイルを削除する方法は?

marioosh

私はID56f06019でコミットしています(たとえば)。そのコミットで、私は誤って大きなファイル(50Mb)をコミットしました。別のコミットで、同じファイルを適切なサイズ(小さい)で追加します。クローンを作成したときのリポジトリが重すぎる:(リポジトリのサイズを小さくするために、その大きなファイルをリポジトリ履歴から削除する方法は?

見る

Pro Gitブックの第9章には、オブジェクトの削除に関するセクションがあります。

ここで簡単に手順の概要を説明します。

git filter-branch --index-filter \
    'git rm --cached --ignore-unmatch path/to/mylarge_50mb_file' \
    --tag-name-filter cat -- --all

前述のリベースオプションと同様に、filter-branch書き換え操作です。履歴を公開している場合は--force、新しい参照プッシュする必要があります

このfilter-branchアプローチは、rebaseアプローチよりもかなり強力です。

  • すべてのブランチ/参照を一度に処理できます。
  • その場でタグの名前を変更します
  • ファイルの追加以降に複数のマージコミットがあった場合でも、正常に動作します
  • (a)ブランチの履歴でファイルが(再)追加/削除された場合でも、正常に動作します
  • 無関係な新しいコミットを作成するのではなく、関連付けられたツリーを変更しながらそれらをコピーします。これは、署名されたコミット、コミットノートなどが保持されることを意味します

filter-branch バックアップも保持するため、reflogとガベージコレクションの有効期限が切れない限り、リポジトリのサイズがすぐに減少することはありません。

rm -Rf .git/refs/original       # careful
git gc --aggressive --prune=now # danger

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

機密ファイルとそのコミットをGit履歴から削除する

分類Dev

Gitリポジトリのコミット履歴から大きなファイルを削除/削除するにはどうすればよいですか?

分類Dev

変更をコミットせずにgit履歴からファイルを削除するにはどうすればよいですか?

分類Dev

Git履歴からファイルを削除する方法

分類Dev

Git / Bitbucket-履歴/コミット全体からファイルを削除します

分類Dev

gitにコミットされたファイルを無視し、履歴から削除します

分類Dev

Git-履歴からコミットを削除する

分類Dev

分岐したコミットからファイルの変更履歴を確認する方法

分類Dev

git履歴から「無意味な」コミットを削除する方法はありますか?

分類Dev

Git履歴から大きなファイルを削除する

分類Dev

リポジトリに存在しなくなったファイルの履歴からコミットを削除する方法

分類Dev

誤ってコミットされた大きなファイルをコミット履歴から削除する

分類Dev

Git:プロジェクトのコミット履歴で削除されたファイルを見つける方法は?

分類Dev

Gitコミットからファイルを削除する

分類Dev

gitは履歴からマージコミットを削除します

分類Dev

gitを使用してファイルではなく、コミット履歴のみをフェッチする方法

分類Dev

コミット履歴から100MBを超えるファイルを削除します-Githubへの移行に失敗します

分類Dev

gitlab apiで1つのファイルのコミット履歴を取得することは可能ですか?

分類Dev

履歴全体のすべてのコミットからのgitビュー/コピーファイル

分類Dev

コミット履歴が表示されるのにGitHubがファイル履歴を表示しないのはなぜですか?

分類Dev

Git-ブランチの履歴からファイルを削除する

分類Dev

コマンドラインを使用せずにGitHub履歴からファイルを削除する方法

分類Dev

コミット履歴のある別のフォルダーにファイルを移動しますか?

分類Dev

Kentico8.2-GUIから添付ファイル履歴を削除する方法はありますか

分類Dev

プロジェクトのコミット履歴で削除されたファイルを見つける方法は?

分類Dev

履歴を保持しながら、特定のファイルをあるgitリポジトリから別のgitリポジトリにコピーする方法

分類Dev

git-現在のコミットから大きすぎるファイルを削除する方法

分類Dev

特定の履歴コミットから特定のフォルダーを削除するにはどうすればよいですか?

分類Dev

Git:手動で削除したファイルをコミットする方法は?

Related 関連記事

  1. 1

    機密ファイルとそのコミットをGit履歴から削除する

  2. 2

    Gitリポジトリのコミット履歴から大きなファイルを削除/削除するにはどうすればよいですか?

  3. 3

    変更をコミットせずにgit履歴からファイルを削除するにはどうすればよいですか?

  4. 4

    Git履歴からファイルを削除する方法

  5. 5

    Git / Bitbucket-履歴/コミット全体からファイルを削除します

  6. 6

    gitにコミットされたファイルを無視し、履歴から削除します

  7. 7

    Git-履歴からコミットを削除する

  8. 8

    分岐したコミットからファイルの変更履歴を確認する方法

  9. 9

    git履歴から「無意味な」コミットを削除する方法はありますか?

  10. 10

    Git履歴から大きなファイルを削除する

  11. 11

    リポジトリに存在しなくなったファイルの履歴からコミットを削除する方法

  12. 12

    誤ってコミットされた大きなファイルをコミット履歴から削除する

  13. 13

    Git:プロジェクトのコミット履歴で削除されたファイルを見つける方法は?

  14. 14

    Gitコミットからファイルを削除する

  15. 15

    gitは履歴からマージコミットを削除します

  16. 16

    gitを使用してファイルではなく、コミット履歴のみをフェッチする方法

  17. 17

    コミット履歴から100MBを超えるファイルを削除します-Githubへの移行に失敗します

  18. 18

    gitlab apiで1つのファイルのコミット履歴を取得することは可能ですか?

  19. 19

    履歴全体のすべてのコミットからのgitビュー/コピーファイル

  20. 20

    コミット履歴が表示されるのにGitHubがファイル履歴を表示しないのはなぜですか?

  21. 21

    Git-ブランチの履歴からファイルを削除する

  22. 22

    コマンドラインを使用せずにGitHub履歴からファイルを削除する方法

  23. 23

    コミット履歴のある別のフォルダーにファイルを移動しますか?

  24. 24

    Kentico8.2-GUIから添付ファイル履歴を削除する方法はありますか

  25. 25

    プロジェクトのコミット履歴で削除されたファイルを見つける方法は?

  26. 26

    履歴を保持しながら、特定のファイルをあるgitリポジトリから別のgitリポジトリにコピーする方法

  27. 27

    git-現在のコミットから大きすぎるファイルを削除する方法

  28. 28

    特定の履歴コミットから特定のフォルダーを削除するにはどうすればよいですか?

  29. 29

    Git:手動で削除したファイルをコミットする方法は?

ホットタグ

アーカイブ