Avec Git 2.25 (Q1 2020), vous pouvez le modifier .
Voir "L' URL du sous-module Git a changé " et la nouvelle commande
git submodule set-url [--] <path> <newurl>
Réponse originale (mai 2009, il y a dix ans)
En fait, un correctif a été soumis en avril 2009 pour clarifier le gitmodule
rôle.
Alors maintenant, la documentation de gitmodule ne comprend pas encore:
Le .gitmodules
fichier, situé dans le répertoire de niveau supérieur d'une arborescence de travail git, est un fichier texte avec une syntaxe correspondant aux exigences de linkgit: git-config 1 .
[NOUVEAU]:
Comme ce fichier est géré par Git, il suit les enregistrements + des sous-modules d'un projet.
Les informations stockées dans ce fichier sont utilisées comme indice pour amorcer la version faisant autorité de l'enregistrement stocké dans le fichier de configuration du projet.
Les modifications d'enregistrement spécifiques à l'utilisateur (par exemple pour tenir compte des différences d'URL de sous-module dues à des situations de mise en réseau) doivent être apportées au fichier de configuration, tandis que les modifications d'enregistrement à propager (par exemple + en raison d'un déplacement de la source du sous-module) doivent être apportées à ce fichier. .
Cela confirme à peu près la réponse de Jim .
Si vous suivez ce tutoriel de sous-module git , vous voyez que vous avez besoin d'un " git submodule init
" pour ajouter les URL du référentiel de sous-module à .git / config.
" git submodule sync
" a été ajouté en août 2008 précisément pour faciliter cette tâche lorsque l'URL change (surtout si le nombre de sous-modules est important).
Le script associé à cette commande est assez simple:
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
L'objectif reste: git config remote."$remote".url "$url"
git submodule set-url [--] <path> <newurl>