На самом деле, патч has been submitted in April 2009 для уточнения gitmodule
роль.
Так что теперь gitmodule documentation еще не включают в себя:
.gitmodules
файл, расположенный в каталоге верхнего уровня рабочего дерева мерзавца, представляет собой текстовый файл с синтаксисом, соответствующим требованиям -of linkgit: git-config 1.
[NEW]:
Поскольку этот файл управляется Git, он отслеживает + записи субмодулей проекта.
Информация, хранящаяся в этом файле, используется в качестве подсказки, чтобы заполнить авторитетную версию записи, хранящуюся в файле конфигурации проекта.
Изменения в пользовательской записи (например, для учета различий в URL-адресах подмодулей из-за сетевых ситуаций) должны быть внесены в файл конфигурации , в то время как изменения записи, подлежащие распространению (например, + из-за перемещения источника субмодуля), должны быть сделаны к этому файлу.
Это почти все подтвердите Jim's answer.
Если следовать этой git submodule tutorial, вы видите, вам нужно «git submodule init
», чтобы добавить репозиторий подмодуль URL-адреса в .git/конфигурации.
«git submodule sync
» имеет been added in August 2008 именно для упрощения этой задачи при изменении URL-адреса (особенно если важно количество подмодулей).
ассоциированный скрипт с этой командой достаточно прост:
module_list "[email protected]" |
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"
Что аффект должен мерзавец подмодуль синхронизации есть? Я делаю это неправильно в http://gist.github.com/120723, или я ошибаюсь в ожидании изменения .git/config с помощью синхронизации подмодулей git? –
Это, похоже, не обновляет .git/config, по крайней мере, в 1.7.1 или 1.7.3. – notJim
Он обновил '.git/config' для меня, у меня есть git 1.7.5.4. – mxcl