リポジトリの複製時に空のGitサブモジュールフォルダー


130

https://github.com/aikiframework/jsonでホストされている1つのリポジトリがあります。ローカルコピーに、次のコマンドを使用してサブモジュールを追加しました

git submodule add git@github.com:jcubic/json-rpc.git json-rpc

次に、コミットとプッシュを実行すると、GitHubに変更が表示されます(クリックできます)。しかし、リポジトリをクローンすると

git clone https://github.com/aikiframework/json.git

サブモジュールフォルダーjson-rpcが空です。

ここで何が欠けていますか?何か忘れましたか?なぜそのフォルダは空ですか?

回答:


200

OK見つけました--recursive。リポジトリのクローンを作成するときに追加する必要があります。

したがって、cloneコマンドは次のようになります。

git clone https://github.com/aikiframework/json.git --recursive

229
うん。git submodule update --init既にクローンを作成したが忘れた場合は、でサブモジュールを取得することもできます--recursive
アンバー

4
開発ブランチにサブモジュールがあるが、マスターブランチにはまだないという問題に直面しました。--recursiveを使用してgit repoのクローンを作成すると、masterブランチでサブモジュールが見つかりません。subomduleも取得するには、Ambersコメント「git submodule update --init」を使用してフェッチする必要があります。
d4Rk 2013年

11
使用するgit submodule update --init場合は、各リポジトリに移動する必要がありgit checkout masterます。そうしないと、新しいリポジトリに更新しようとするとエラーが発生You are not currently on a branch.git pullます。
Noitidart

@Noitidartはそれをしない方法はありますか?(すでにプロジェクトのクローンを作成した後)
borgr 2018

1
@Noitidart update --initヒントをありがとう。これは、元のクローンが含まれておらず--recursive、不足しているサブモジュールを単にプルしたい場合に役立ちます。
Jari Turkia、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.