Con Git 2.25 (Q1 2020), puede modificarlo .
Consulte "La URL del submódulo Git ha cambiado " y el nuevo comando
git submodule set-url [--] <path> <newurl>
Respuesta original (mayo de 2009, hace diez años)
En realidad, se envió un parche en abril de 2009 para aclarar el gitmodule
rol.
Entonces ahora el documentación de gitmodule aún no incluye:
El .gitmodules
archivo, ubicado en el directorio de nivel superior de un árbol de trabajo de git, es un archivo de texto con una sintaxis que coincide con los requisitos -of linkgit: git-config 1 .
[NUEVO]:
como Git administra este archivo, rastrea los registros + de los submódulos de un proyecto.
La información almacenada en este archivo se utiliza como una pista para preparar la versión autorizada del registro almacenado en el archivo de configuración del proyecto.
Los cambios de registro específicos del usuario (por ejemplo, para tener en cuenta las diferencias en las URL de submódulo debido a situaciones de red) deben realizarse en el archivo de configuración, mientras que los cambios de registro que se propagarán (por ejemplo, + debido a una reubicación de la fuente del submódulo) deben realizarse en este archivo .
Eso prácticamente confirma la respuesta de Jim .
Si sigue este tutorial de submódulo git , verá que necesita un "git submodule init
" para agregar las URL del repositorio de submódulos a .git / config.
" git submodule sync
" se agregó en agosto de 2008 precisamente para facilitar esa tarea cuando la URL cambia (especialmente si el número de submódulos es importante).
El script asociado con ese comando es lo suficientemente sencillo:
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
El objetivo sigue siendo: git config remote."$remote".url "$url"
git submodule set-url [--] <path> <newurl>