Как изменить удаленный репозиторий для подмодуля git?

Здесь упоминается , что это обычно проблема с файлами в Windows.

Одним из возможных решений будет запуск файла с помощью инструмента, такого как dos2unix.

634
задан Dawnkeeper 13 May 2019 в 07:13
поделиться

3 ответа

На самом деле, патч был отправлен в апреле 2009 г. для уточнения роли gitmodule .

Итак, теперь gitmodule документация еще не включает:

Файл .gitmodules , расположенный в каталоге верхнего уровня рабочего дерева git, представляет собой текстовый файл с синтаксисом, соответствующим требованиям -of linkgit: git-config 1 .
[НОВОЕ]:
Поскольку этим файлом управляет Git, он отслеживает + записи подмодулей проекта.
Информация, хранящаяся в этом файле, используется в качестве подсказки для запуска авторитетной версии записи, хранящейся в файле конфигурации проекта.
Пользовательские изменения записей (например, для учета различий в URL-адресах подмодулей из-за сетевых ситуаций) должны быть внесены в файл конфигурации, в то время как изменения записи, которые должны быть распространены (например, + из-за перемещения источника подмодуля), должны быть сделаны в этот файл.

Это в значительной степени подтверждает ответ Джима .


Если вы последуете этому руководству по подмодулю git , вы увидите, что вам нужен " git submodule init "для добавления URL-адресов репозитория подмодулей в .git / config.

" git submodule sync " был добавлен в августе 2008 года именно для облегчения этой задачи при изменении URL (особенно, если важно количество подмодулей).
Связанный с этой командой сценарий достаточно прост:

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

Цель остается: git config remote. "$ Remote" .url "$ url"

64
ответ дан 22 November 2019 в 21:44
поделиться

Вы должны просто уметь отредактировать файл .gitmodules для обновления URL-адреса и затем запустить git submodule sync , чтобы отразить это изменение в суперпроекте и вашей рабочей копии.

941
ответ дан 22 November 2019 в 21:44
поделиться

Просто отредактируйте файл .git / config . Например; если у вас есть подмодуль "common" , вы можете сделать это в супер-модуле:

git config submodule.common.url /data/my_local_common
9
ответ дан 22 November 2019 в 21:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: