2013-07-25 12 views
6

作業ディレクトリだけを持つリポジトリのサブモジュールをダウンロードすることは可能ですか?tarball用のgitサブモジュールをダウンロードする

.gitフォルダのない浅いクローンと同じGitHubからリポジトリのtarballをダウンロードした場合、サブモジュールを作業ディレクトリに「ダウンロード」することは可能ですか?

私はgit init && git submodule update --initを試しましたが、これは初期化もサブモジュールも更新しません。 .gitmodulesファイルは現在のディレクトリにあります。

更新:質問のいくつかのより多くの背景:私たちは、Travis CIでリポジトリをチェックアウトするためのtarballを使用したいが、いくつかの人々は、Gitのサブモジュールを使用します。 "Gitサブモジュールを使用しないでください"というのは良い答えではありませんが、答えは保守可能なものである必要はありません。私はちょうどコードがチェックアウトされ、サブモジュールが初期化されたフォルダを必要とするので、後でもっと多くの変更をプルダウンできるようなものは必要ありません。

すべてがgit init後人跡未踏です:

+0

はなぜ 'gitのサブモジュールの更新が--init --recursive --force'動作していないでしょうか?それはそれらのサブモジュールをロードすべきです(しかし、それらの完全な履歴を持つ)。 [git1.8.4は、浅いサブモジュールクローンに--depthを追加します](http://stackoverflow.com/a/17692710/6309)。 – VonC

+0

@VonCもし私が知っていれば。そのコマンドは私のために何もしません。エラーはありませんが、出力せずに「即座に」返します。 – henrikhodne

+0

'.gitmodules'ファイルの内容は何ですか?どのバージョンのgitを使用していますか? – VonC

答えて

2

git initで、wgetの/タールアプローチを組み合わせることで、あなたがサブモジュールを初期化する助けにはなりません。

あなたはの前に追加して、すべてをコミット、する必要があります。

git submodule update --init --recursive --force 

git submoduleコマンドは、その後、「仕事」しますが、唯一の空のディレクトリを作成すること。
git submodule addで作成されたspecial entries (160000)が含まれていないためです。

あなたはそれらのサブモジュールを再宣言する必要があり

C:\prog\git\ReactiveCocoa-2.0-development>git submodule add --name xcconfigs https://github.com/jspahrsummers/xcconfigs.git external\xcconfigs 
Cloning into 'external\xcconfigs'... 
remote: Counting objects: 312, done. 
remote: Compressing objects: 100% (229/229), done. 
Receal 312 (delta 87), reused 306 (delta 82) 
Receiving objects: 100% (312/312), 64.51 KiB | 0 bytes/s, done. 
Resolving deltas: 100% (87/87), done. 
+0

これはまだ動作しません。上記のコメントでgit add -Aと同じコマンドを使用しています。 && git commit -m 'git init'の直後に" commit everything "を実行します。 – henrikhodne

+0

@henrikhodne私はちょうど私の答えを編集しました。 – VonC

+0

おかげさまで、 '.gitmodules'ファイルを解析してすべてを読みとる必要があるようです。もう少し自動化したいと思っていましたが、うまくいくと思います。 – henrikhodne

関連する問題