git вытащить несколько репозиториев - PullRequest
0 голосов
/ 21 марта 2020

У меня есть вопрос о пересмотре переплетенных репозиториев.

У меня есть репозиторий, давайте назовем его common_repo.

common_repo содержит код, который относится к большинству других моих репозиториев, и я буду sh извлекать его всякий раз, когда я извлекаю другие репозитории.

Мы рассмотрели подмодулей , но, насколько я понимаю, это создаст множество копий общего репо на моей машине. Это нежелательно, так как у меня могут быть версии rnet на моем компьютере одинаковых файлов в зависимости от того, когда я в последний раз извлекал зависимое хранилище, что может привести к путанице.

Другой альтернативой будет использование некоторых пользовательских сценариев, таких как как запланировано здесь . Однако это не кроссплатформенный формат (у нас есть несколько разработчиков, работающих над разными ОС), он требует развертывания на каждой машине и не подходит для git GUI клиентов, таких как smart git или исходного дерева.

Есть ли лучшее решение, которое мы не рассмотрели?

1 Ответ

1 голос
/ 21 марта 2020

Вы можете обновить все репозитории git в каталоге с помощью команды bash, как вы упомянули

find . -maxdepth 3 -name .git -type d | rev | cut -c 6- | rev | xargs -I {} git -C {} pull

Кредит: https://medium.com/@codenameyau / update-multiple-repos-with- one-command-9768c8cdfe46

Еще один вариант, который я могу предложить вам, это изучить крючок post-merge git, где вы можете выполнить sh нечто похожее на описанное выше на git pull , Любой язык, скомпилированный или интерпретированный, может использоваться в хуке git, если в системе доступен соответствующий интерпретатор. Это может быть хорошим ресурсом: https://git-scm.com/docs/githooks

...