С Git 2.25 (Q1 2020) вы можете изменить его.
См. " URL подмодуля Git изменен " и новая команда
git submodule set-url [--] <path> <newurl>
Оригинальный ответ (май 2009 г., десять лет назад)
На самом деле, патч был представлен в апреле 2009 года для уточнения gitmodule
роли.
Так что теперь документация по gitmodule еще не включает:
.gitmodules
Файл, расположенный в каталоге верхнего уровня рабочего дерева мерзавца, представляет собой текстовый файл с синтаксисом , соответствующим с требованиями -of linkgit: ГИТ-конфигурация 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"
git submodule set-url [--] <path> <newurl>