7

Gitを使用して、大規模な作業ディレクトリ(多くのギグ)でのマイクロ変更(1日数回)を追跡したいと思います。データは、バイナリ/プレーンテキストの混合になります。バイナリデータは、テキスト情報ほど変更されません。古いコミットへのアクセスが必要になることはめったになく、遅くなる可能性がありますが、最近の履歴は高速である必要があります。

古いデータを永久に失いたくはありません。バックアップサーバーなどに移動するだけです。古い履歴をアーカイブして、ローカルリポジトリに特定のサブセットのみを保持できるようにするものがGitにありますか?

そうでない場合、この目的により適したツールはありますか?私はGitを知っていて、バージョン管理と差分が必要なので、Gitが好きです。Gitの高度な機能(分岐/マージ、分散されていないなど)は必要ないので、他の同様のVCSがあれば便利です。

4

1 に答える 1

4

でパッチを適用している場合はgit format-patch、で浅いクローンを作成しgit clone --depth <depth>て続行します。ただし、そうではない可能性があります。その場合、おそらくこの回答この回答が役立つでしょう。git checkout --orphan2つ目は、それがおそらくあなたが望むものを手に入れるための最良の方法であると結論付けています。もちろん、履歴の小さなブランチを作成するには、完全な履歴をローカルで1回複製する必要があります。

冒険心があり、これをひどく望んでいて、より複雑なプッシュプロセスに我慢したい場合は、パッチを作成git format-patchして別のリポジトリに適用することgit amは、実行もスクリプト化も難しくありません。プッシュプロセスに追加のレイヤーを追加します。たとえば、浅いリポジトリにパッチを作成し、ローカルまたは別の場所にある完全なリポジトリにプログラムで適用し、後者からプッシュします。時間と手間はおそらくそれだけの価値はありませんが、それは確かに可能です。

于 2012-08-13T11:37:41.183 に答える