約2030件のコミットがあるレポがあります。約2000年にファイルが修正され、誤ってサイズが約20Mから1.2GBに変化しました。このファイルを削除するために履歴を書き換えることは可能ですが、コミット2000からのみ可能ですか? (私はこのファイルの過去の履歴を失いたくない)(特定の時点から)git repoからファイルを完全に削除しました
私はgit-filter-branchと思っていましたが、 "コミットから"それを伝える方法は見当たりませんでしたか?
乾杯 マイク
約2030件のコミットがあるレポがあります。約2000年にファイルが修正され、誤ってサイズが約20Mから1.2GBに変化しました。このファイルを削除するために履歴を書き換えることは可能ですが、コミット2000からのみ可能ですか? (私はこのファイルの過去の履歴を失いたくない)(特定の時点から)git repoからファイルを完全に削除しました
私はgit-filter-branchと思っていましたが、 "コミットから"それを伝える方法は見当たりませんでしたか?
乾杯 マイク
gitのフィルタ分岐のmanページは、このために決定的と権威の例が含まれています。
あなたは、特定のコミット前に書換えを中止したい場合は、tag01
前に言う:あなたはすでにドットのために持っているもの
git-filter-branch ...... -- master ^tag01
代用。 tag01ではなく、任意のコミットっぽい(revspec)であってもよい
PS:あなたがタグを使用する場合は、これらのあまりに
なぜ
new
を作成しませんを書き換える--tag-name-filter cat
を忘れないでくださいあなたは-Xtheirs
new
に1.2ギガバイトのファイルmaster
にこのファイルを変更し、ディスク領域を節約するためのリポジトリを収集することはありません2000、コミット。あなたはGitのリポジトリから大きなファイルやプライベートなデータを除去するために設計されgit-filter-branch
に速く、より簡単な代替、BFG Repo-Cleanerをしようとする場合があります。
ダウンロードthe executable jar(上記のJava 6以上が必要です)、このコマンドを実行します。
を100MB$ます。java -jar bfg.jar --strip-塊-大きな-よりも私の-repo.git
サイズが100MBを超えるもの(つまり、最新のコミットのファイル階層に含まれていないもの)は、リポジトリの履歴から完全に削除されます。 100MBより小さいファイルのすべてのバージョンは、質問に指定されているように、単独で放置されます。
全開示:私はBFG Repo-Cleanerの著者です。