Есть ли какой-нибудь простой способ переименовать каталог подмодуля git (кроме как пройти весь процесс удаления и повторного добавления его с новым именем назначения).
И пока мы занимаемся этим, почему я просто не могу сделать следующее в родительском каталоге: git mv old-submodule-name new-submodule-name
git
git-submodules
Ларс Такманн
источник
источник
.gitmodules
вручную при перемещении подмодуля. см. мой ответ нижеnpm
показывает, как просто работает. Однажды ... может быть ... кто-то ... перепишет это ... а тем временем ...Ответы:
Я нашел следующий рабочий процесс работает:
mv oldpath newpath
git rm oldpath
git add newpath
git submodule sync
Примечание: этот подход не обновляет индекс и .gitmodules должным образом в версиях GIT 2018 года.
Примечание: Вы можете быть в состоянии теперь просто сделать
git mv oldpath newpath
сейчас, как указано в VonC «s ответ . (Убедитесь, что вы используете последнюю версию git)источник
git add newpath
не используйте косую черту.git/modules/SUBMODULE/config
файл так, чтобы онworktree
снова указывал на правильный каталог.2.13.1
. Но просто работаgit mv old new
работает как шарм. Мне нужно только сделать git commit для завершения изменений.Git1.8.5 (октябрь 2013) должен упростить процесс . Просто сделайте:
Подробнее в коммите 0656781fadca1 :
git 2.9 (июнь 2016) улучшится
git mv
подмодуль:См. Коммит a127331 (19 апреля 2016 г.) Стефана Беллера (
stefanbeller
) .(Слиты Junio C Hamano -
gitster
- в фиксации 9cb50a3 , 29 Apr 2016)источник
fatal: source directory is empty, source=my_source, destination=my_destination
. Попробуем это снова, когда у 1.8.5 будет стабильный выпуск.Правильное решение:
Источник: переименовать подмодуль git
источник
Я только что попробовал несколько из предложенных выше. Я бегу:
Я обнаружил, что лучше всего де-инициализировать подмодуль, удалить каталог и создать новый подмодуль.
По крайней мере, это то, что сработало для меня лучше всего. YMMV!
источник
Переименовать его невозможно, поэтому сначала вы должны удалить его (
deinit
) и снова добавить.Итак, после его удаления:
Вы также можете дважды проверить и удалить ссылки на него в:
.gitmodules
.git/config
.git/modules/<name>
(лучше всего сделать резервную копию), так как в каждой папке естьconfig
файл, в котором она хранит ссылку на своюworktree
затем внесите изменения в ваш репозиторий:
и еще раз проверьте, если у вас нет каких-либо нерешенных проблем с помощью:
так что теперь вы можете снова добавить подмодуль git:
источник
Отредактируйте файл .gitmodules, чтобы переименовать подмодуль, а затем переименуйте каталог подмодулей.
Я думаю, что вам может понадобиться сделать
git submodule sync
потом, но я не в состоянии проверить прямо сейчас.источник
MacOs : когда я хочу использовать решение VonC, чтобы изменить папку субмодуля
Common
в нижний регистр:я получил
Решение - используйте какое-нибудь временное имя папки и переместите дважды:
Вот и все :)
источник