За допомогою 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>