На самом деле, патч был представлен в апреле 2009 года для уточнения роли gitmodule
.
Так что теперь документация gitmodule еще не включает:
Файл .gitmodules
, расположенный в каталоге верхнего уровня рабочего дерева git, представляет собой текстовый файл с синтаксисом, соответствующим требованиям -g linkgit: git-config 1 .
[NEW]:
Поскольку этот файл управляется Git, он отслеживает + записи подмодулей проекта.
Информация, хранящаяся в этом файле, используется в качестве подсказки для заполнения официальной версии записи, хранящейся в файле конфигурации проекта.
В файл конфигурации необходимо внести изменения в записи, относящиеся к конкретному пользователю (например, для учета различий в URL-адресах подмодулей), , в то время как изменения записей должны распространяться (например, + из-за перемещения источника подмодуля) в этот файл.
Это в значительной степени подтверждает ответ Джима .
Если вы будете следовать этому учебнику по подмодулям git , вы увидите, что вам нужно "git submodule init
", чтобы добавить URL-адреса хранилища подмодулей в .git / config.
"git submodule sync
" было добавлено в августе 2008 года именно для того, чтобы упростить эту задачу при изменении URL (особенно если важно количество подмодулей).
Связать скрипт с этой командой достаточно просто:
module_list "$@" |
while read mode sha1 stage path
do
name=$(module_name "$path")
url=$(git config -f .gitmodules --get submodule."$name".url)
if test -e "$path"/.git
then
(
unset GIT_DIR
cd "$path"
remote=$(get_default_remote)
say "Synchronizing submodule url for '$name'"
git config remote."$remote".url "$url"
)
fi
done
Цель остается: git config remote."$remote".url "$url"