This commit is contained in:
Andrei Astafev 2020-04-11 19:44:15 +03:00
parent 2bcf387ba4
commit 494c9f31d6

View File

@ -3,15 +3,35 @@
:category: Программирование
:tags: программирование, git,
Если у подмодуля, находящегося в каталоге `thirdparty/example` нужно
заменить адрес синхронизации и имя используемой ветки, то в каталоге с
файлом `.gitmodules`, в котором содержится информация об этом подмодуле,
нужно выполнить команды:
Если у подмодулей необходимо заменить адрес синхронизации и/или
имя используемой ветки, то можно отредактировать в корневом
каталоге проекта файл `.gitmodules` и выполнить данный скрипт:
[source,sh]
----
git config --file=.gitmodules submodule.thirdparty/example.url https://github.com/username/ABC.git
git config --file=.gitmodules submodule.thirdparty/example.branch new-branch-name
git submodule sync --recursive
git submodule update --init --recursive --remote
#!/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
----