Если я изменяю подмодуль, могу ли я вернуть фиксацию в источник подмодуля, или для этого потребуется клон? Если клонировать, могу ли я сохранить клон в другом репозитории?
git
git-submodules
webjay
источник
источник
git config push.recurseSubmodules on-demand
. Тогда простогоgit push
будет достаточно, чтобы все запихнуть (основное репо и подмодули). См. Мой отредактированный ответ ниже .Ответы:
Подмодуль - это не что иное, как клон репозитория git в другом репо с некоторыми дополнительными метаданными (запись дерева gitlink, файл .gitmodules)
источник
gh-pages
веткой документации поОбратите внимание, что, поскольку в git1.7.11 ( [ANNOUNCE] Git 1.7.11.rc1 и примечание к выпуску , июнь 2012 г.) упоминается:
Вероятно, будет сделано после этого патча и
--on-demand
варианта:Таким образом, вы можете нажать все за один раз с (из родительского репо):
Этот вариант работает только для одного уровня вложенности. Изменения субмодуля внутри другого субмодуля не будут перенесены.
С git 2.7 (январь 2016 г.) простого git push будет достаточно, чтобы протолкнуть родительский репо ... и все его подмодули.
См. Коммит d34141c , фиксацию f5c7cd9 (3 декабря 2015 г.), фиксацию f5c7cd9 (3 декабря 2015 г.) и фиксацию b33a15b (17 ноября 2015 г.) Майком Кроу (
mikecrowe
) .(Объединено Junio C Hamano -
gitster
- в коммите 5d35d72 , 21 декабря 2015 г.)Теперь
git config
документ включает :Так:
Git 2.12 (первый квартал 2017 г.)
git push --dry-run --recurse-submodules=on-demand
действительно будет работать.См. Commit 0301c82 , commit 1aa7365 (17 ноября 2016 г.) Брэндон Уильямс (
mbrandonw
) .(Объединено Junio C Hamano -
gitster
- в коммите 12cf113 , 16 декабря 2016 г.)И все же в Git 2.12 у вас теперь есть "
--recurse-submodules=only
" возможность выталкивать подмодули, не выталкивая суперпроект верхнего уровня .См. Commit 225e8bf , commit 6c656c3 , commit 14c01bd (19 декабря 2016 г.) Брэндон Уильямс (
mbrandonw
) .(Объединено Junio C Hamano -
gitster
- в коммите 792e22e , 31 января 2017 г.)источник