Ретроспективно добавьте рекурсию в репозиторий git
Если вы git clone
с --recursive
, вы можете получить все подмодули git.
Если я забыл добавить этот волшебный флаг при клонировании, как это может произойти, как мне теперь идти и получать какие-либо подмодули?
Кроме того, как я могу установить рекурсивный флаг по умолчанию для будущих клонов?
Ответы
Ответ 1
Вы можете сделать это с помощью этого простого клонирования верхнего уровня:
git submodule update --init --recursive
Я бы не рекомендовал делать клон делать это по умолчанию. Правильный способ сделать это, если вы агрессивно используете подмодули для разработки, а не только ссылку на сторонние OSS-библиотеки на github, которые вы можете обновить один раз в голубой луне, - это использовать git slave или subtree.
Надеюсь, что это поможет.
Ответ 2
-
В корне вашего репо:
$ git submodule update --init --recursive
Это будет обновлять любые зарегистрированные модули, инициализируя их, если это необходимо, как значение, найденное в файле .gitmodules, а также рекурсивно вводить в сложные подмодули (те, у которых есть собственные подмодули), а также инициализировать и обновлять их.
-
Самый простой способ, с помощью которого я пытаюсь клонировать рекурсивно, по умолчанию будет теневым git clone
с псевдонимом
$ git config --global alias.clone = 'clone --recursive'
Что касается добавления параметров всегда, я думаю, что идиоматический метод.
Ответ 3
IIRC,
git submodule init
git submodule update
К сожалению, я не вижу возможности включить рекурсию по умолчанию.
Ответ 4
Похоже, вы не можете переопределить "clone" с псевдонимом "clone", так что это новый псевдоним (Abizern solution) или "--recursive".
Возможно ли переопределить команду git с помощью псевдонима git?