2

私は現在、ゲノムファイルから通常サイズの配列を抽出しているバイオインフォマティシャンです。一部のゲノム ファイルは十分に大きいため、メインの git リポジトリに入れたくありませんが、抽出したシーケンスを git に入れています。

gitに「これは大きなファイルです。ファイル全体を保存しないでください。チェックサムを取得して、そのファイルが見つからないか変更されているかどうかを知らせてください。」

それが不可能な場合は、大きなファイルを git-ignore するか、この質問で提案されているように、それらをサブモジュールに保存する必要があると思います。

4

3 に答える 3

6

この種のことを行うスクリプトを書きました。git リポジトリに入れたくない大きなメディアのファイル パターンを .gitattributes ファイルに入れ、代わりに S3 に保存できます。入門用ですが、興味があれば使えると思います。

http://github.com/schacon/git-media

多分それはあなたを助けるか、少なくともそれがどのように行われるかを示し、特定のニーズに合わせてカスタマイズできる.

于 2009-10-01T05:42:21.727 に答える
2

git の次のリリースでは、' refs/replace/' メカニズムがあり、そのような目的に適応できると思います (そのような大きなメディア ファイルの数とそのバージョンの数がそれほど多くないと仮定します)。

プロジェクトのスリムフォークでは、( Seth が書いたように) 大きなメディア ファイルの代わりに「スタブ」ファイルがあり、その内容として (" git hash-object -t blob <filename>" からの) 大きなファイルのブロブの SHA-1 が含まれます。

次に、プロジェクトの完全なフォークで、「refs/replace/」メカニズムを使用して、これらの「スタブ」ファイルを実際の内容に置き換えます ( git replaceを使用)。「スタブ」ファイル内の SHA-1 を実際の大きなメディア ファイルと同期させるには、いくつかのフックが必要です。

次に、完全なクローンが必要な場合は、" refs/replace/" 名前空間からもフェッチします。スリムクローンが必要な場合は、" " をフェッチしませんrefs/replace/

注: 私は実際にそのようなセットアップをテストしていません。また、「master」を実行しない限り、これは git ではまだ利用できません。

于 2009-10-01T07:53:32.790 に答える
1

ハッシュをテキスト ファイルに保存してから、そのテキスト ファイルを git に渡してはどうでしょうか。次に、ハッシュを比較するフックを作成できるため、チェックインまたはチェックアウトするたびに、何が欠けているか/異なるかを通知できます。

まさにあなたが望むものではなく、テキストファイルを手動で維持する必要があります.

于 2009-10-01T03:45:19.150 に答える