Ретроспективно добавить --рекурсивно в Git РЕПО


Если вы git clone с --recursive, вы можете получить все подмодули git тоже.

Если я забыл добавить этот волшебный флаг при клонировании, как это может произойти, как мне теперь пойти и получить какие-либо подмодули?

кроме того, как я могу установить флаг рекурсии по умолчанию для будущих клонов?

4 54

4 ответа:

вы можете сделать это с этим после простого клона верхнего уровня:

git submodule update --init --recursive

Я бы не рекомендовал делать клон делать это по умолчанию. Правильный способ сделать это, если вы используете подмодули агрессивно для разработки, а не просто ссылки на сторонние библиотеки OSS на github, которые вы можете обновить один раз в blue moon, - использовать git slave или поддерева.

надеюсь, что это помогает.

  1. из корня репозитория:

    $ git submodule update --init --recursive
    

    это обновит все зарегистрированные подмодули, инициализируя их, если это необходимо, до значения, найденного в .gitmodules файл, а также выполняться в комплексе подмодулей (с подмодулями свои собственные) и инициализация и обновление.

  2. самый простой способ я знаю, чтобы сделать клонирование рекурсивно по умолчанию будет тень git clone С псевдоним

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

    Что касается добавления опций всегда, я думаю, что это идиоматический метод.

IIRC, git submodule init, git submodule update

к сожалению, я не вижу возможности включить рекурсивный по умолчанию, однако.

похоже, вы не можете переопределить "clone" с псевдонимом "clone", поэтому это новый псевдоним (решение Abizern) или "--recursive".

можно ли переопределить команду git с помощью псевдонима git?