2

私はgitにローカルプロジェクトを持っています。これにはいくつかのデータ(ユニットテスト用の入力など)が含まれています。このデータはプロジェクトの過程で変化し、ある時点でははるかに大きくなりました。これで、プロジェクトをその状態に戻す必要はなくなりましたが、clonegit で新しく実行するたびに、プロジェクトのサイズが膨大になります (すべてのデータ変更から)。

プロジェクトを何らかの方法でリセットして、特定のディレクトリ (例: project/data/) の履歴を消去し、最新の状態のみが保存されるようにする方法はありますか?

4

3 に答える 3

0

共同作業者が完全に追い出されない場合cpは、最も下流の状態にある間にどこかのディレクトリだけを取り出しgit filter-branch、コードベースからディレクトリを取り出し、自分でクリーンアップしてから、リポジトリにcp戻して新たにコミットします。

公正な警告: 歴史の書き換えは軽々しく行うべきではありませんが、それがあなた、または自分が何をしているのかを知っている数人の協力者だけである場合、それがあなたの日常生活を大幅に改善するのであれば、それほど大したことではありません.

于 2012-07-23T23:41:30.183 に答える
0

git gc --aggressive参照されていないアイテムをクリーンアップすることだけを試みたいと思うかもしれません。大きなファイルの変更が過去 2 週間以内 (デフォルト) に行われた場合、これはそれらを取り除くことはありませんが、十分な時間が経過すると削除されるはずです。これは自動的に行われますが、強制することができますgit gc

--prune=nowを追加してその 2 週間の日付を変更することもできますが、ほとんどのファイルの履歴を保持したいので、これはおそらく良い考えではありません。

于 2012-07-23T19:00:03.097 に答える