= Git: замена адреса подмодуля
:title-separator: {sp}|
:category: Программирование
:tags: программирование, git,

Если у подмодулей необходимо заменить адрес синхронизации и/или
имя используемой ветки, то можно отредактировать в корневом
каталоге проекта файл `.gitmodules` и выполнить данный скрипт:

[source,sh]
----
#!/bin/bash

# Замена адресов для подмодулей:
# 1. Отредактировать файл .gitmodules
# 2. Запустить этот скрипт
#
# Параметры:
# - имя подмодуля (если присутствует, то замена
#   адреса производится только для данного подмодуля)

M="#"
[ ! -z $1 ] && M="$1"

cat .gitmodules | while read s; do
	s=${s/\*/}
	s=${s/path = /}
	if [ "$M" = "#" -o "x$M" = "x$s" ]; then
		rm -rf .git/modules/$s
		rm -rf $s
	fi
done

git submodule sync
git submodule update
----

