.git
リポジトリディレクトリなしでツリーのコピーを作成する「git export」という優れたソリューションがあるかどうか疑問に思っていました。私が知っている方法は少なくとも3つあります。
git clone
その後、.git
リポジトリディレクトリを削除します。git checkout-index
この機能をほのめかしますが、「目的のツリーをインデックスに読み込むだけです...」で始まります。方法は完全にはわかりません。git-export
は、基本的にgit clone
一時的な場所に移動し、続いrsync --exclude='.git'
て最終的な宛先に移動するサードパーティのスクリプトです。
これらの解決策はどれも、本当に満足できるものではありません。最も近いのはsvn export
オプション1かもしれません。どちらも最初にターゲットディレクトリを空にする必要があるためです。しかし、オプション2は、ツリーをインデックスに読み込むことが何を意味するかを理解できると仮定すると、さらに良いようです。
git archive --format zip --output "output.zip" master -0
は非圧縮アーカイブを提供します(-0は非圧縮のフラグです)。git-scm.com/docs/git-archive。
export
すると、リモートリポジトリから250 kBのサブディレクトリを直接作成できます(それ以外の場合は、リビジョンを除いてサイズが200 MBになる可能性があります)。ネットワークにアクセスするのは、250 kB(またはそれ以上)のダウンロード転送のみです。ではgit
、archive
サーバーで有効にする必要があります(そのため、私は試すことができません)- clone --depth 1
サーバーから、たとえば25 MBのレポを取得する場合があり、.git
サブフォルダーだけで15 MBを使用します。したがって、答えは「いいえ」です。
git checkout-index
git archive -o latest.zip HEAD