Как я могу иметь связанные зависимости в репозитории git?
в моих скриптах я часто использую библиотеки (мои или другие), которые имеют свои собственные репозитории. Я не хочу дублировать их в моем РЕПО и застрять с обновлением их каждый раз, когда выходит новая версия. Однако, когда кто-то клонирует РЕПО, он все равно должен работать локально и не иметь сломанных ссылок.
есть идеи о том, что я мог бы сделать?
1 ответов
вы можете сделать это с подмодулями в git. В вашем репозитории сделайте:
git submodule add path_to_repo path_where_you_want_it
Итак, если в хранилище библиотеки был URL git://github.com/example/some_lib.git
и вы хотели его в lib/some_lib
в вашем проекте, вы бы введите:
git submodule add git://github.com/example/some_lib.git lib/some_lib
обратите внимание, что это необходимо сделать из каталога верхнего уровня в вашем репозитории. Так что не cd
в каталог, где вы кладете его в первую очередь.
после добавления подмодуля или всякий раз, когда кто-то делает новую проверку вашего репозиторий, вам нужно будет сделать:
git submodule init
git submodule update
и тогда все подмодули, которые вы добавили, будут проверены в той же редакции, что и у вас.
если вы хотите обновить до более новой версии одной из библиотек,cd
в подмодуль и потяните:
cd lib/some_lib
git pull
тогда, когда вы делаете git status
вы должны увидеть lib/somelib
перечислены в измененном разделе. Добавьте этот файл, commit, и вы в курсе. Когда сотрудник вытаскивает эту фиксацию в свой репозиторий, они увидят!--9--> как изменено, пока они не запустятся git submodule update
еще раз.