web-dev-qa-db-ja.com

--recursiveをgitリポジトリに遡及的に追加

もし、あんたが git clone--recursive、すべてのgitサブモジュールも取得できます。

クローン作成時にこの魔法のフラグを追加するのを忘れた場合、たまたまそうなのですが、サブモジュールを取得するにはどうすればよいですか?

さらに、将来のクローンのデフォルトとして再帰フラグを設定するにはどうすればよいですか?

62
kenneth

単純なトップレベルのクローンの後にこれを行うことができます:

git submodule update --init --recursive

デフォルトでクローンにこれを実行させることはお勧めしません。ブルームーンで一度アップグレードできるgithubのサードパーティOSSライブラリにリンクするだけでなく、開発にサブモジュールを積極的に使用している場合にこれを行う適切な方法は、 git slave または-を使用することです サブツリー

お役に立てれば。

73
Adam Dymitruk
  1. あなたのリポジトリのルートから:

    $ git submodule update --init --recursive
    

    これにより、すべての登録済みサブモジュールが更新され、必要に応じて.gitmodulesファイルにある値に初期化されます。また、複雑なサブモジュール(独自のサブモジュールを持つもの)に再帰し、それらも初期化および更新します。

  2. 再帰的に複製をデフォルトにするために知っている最も簡単な方法は、エイリアスでgit cloneをシャドウイングすることです。

    $ git config --global alias.clone = 'clone --recursive'
    

    常にオプションを追加する限り、私はそれが慣用的な方法だと思います。

10
Tim Visher

ちゃんと覚えたら、 git submodule initgit submodule update

残念ながら、デフォルトで再帰を有効にするオプションは表示されません。

1
user502515

"clone"をエイリアス "clone"で上書きできないようですが、これは新しいエイリアス(Abizernのソリューション)または "--recursive"です。

gitエイリアスでgitコマンドをオーバーライドすることは可能ですか?

0