0

git-lfs サイトの機能の概要には、

Git Large File Storage (LFS) は、オーディオ サンプル、ビデオ、データセット、グラフィックスなどの大きなファイルを Git 内のテキスト ポインターに置き換え、ファイルの内容を GitHub.com や GitHub Enterprise などのリモート サーバーに保存します。

しかし、この文は私を混乱させ、あいまいな付随する数字と矛盾しているように見えます.

大きな (管理された) ファイルは、ローカル リポジトリとリモート リポジトリ、またはリモート リポジトリのリンクに置き換えられますか? 誰かが git-lfs 管理ファイルを使用してリモート リポジトリのクローンを作成するとどうなりますか?

4

1 に答える 1

0

詳細は仕様で読むことができます。次のように機能します。

大きなファイル (lfs を介して追跡されるファイル) は、リポジトリの一部にはなりません。代わりに、小さなポインター ファイルのみが書き込まれます。

大きなファイルをコミットすると、lfs はインターセプトしてファイルをポインターに置き換えます。ファイル自体は に保存され.git/lfs/objects/{OID-PATH}ます。

大きなファイルをプッシュする.git/lfs/objects/{OID-PATH}と、これらの大きなファイルを保存するストレージに同期されます。

大きなファイルをチェックアウトする場合、lfs はファイルが に存在するかどうかをチェックします.git/lfs/objects/{OID-PATH}。そうでない場合は、サーバーからファイルをダウンロードします。

そうです、大きなマネージド ファイルはすべてのリポジトリでリンクに置き換えられます (git が懸念すること)。チェックアウトした場合のみ、交換されます。クリーンアップされない場合.git/lfs/objects/、システム上にすべての大きなファイルが存在することになります (github クライアントが何らかのクリーニングを行うかどうかはわかりません)。

于 2016-06-10T12:19:39.777 に答える