Você pode fazer isso com submódulos no git. No seu repositório, faça:
git submodule add path_to_repo path_where_you_want_it
Portanto, se o repositório da biblioteca tivesse um URL git://github.com/example/some_lib.git
e você o quisesse lib/some_lib
em seu projeto, digite:
git submodule add git://github.com/example/some_lib.git lib/some_lib
Observe que isso precisa ser feito no diretório de nível superior em seu repositório. Portanto, não cd
entre no diretório em que você o coloca primeiro.
Depois de adicionar um submódulo, ou sempre que alguém fizer uma nova verificação em seu repositório, você precisará fazer:
git submodule init
git submodule update
E então todos os submódulos adicionados serão verificados na mesma revisão que você possui.
Quando você deseja atualizar para uma versão mais recente de uma das bibliotecas, cd
no submódulo e puxe:
cd lib/some_lib
git pull
Então, ao fazer um, git status
você deverá ver lib/somelib
listado na seção modificada. Adicione esse arquivo, confirme e você está atualizado. Quando um colaborador puxa essa confirmação em seu repositório, ele será lib/somelib
modificado até que seja executado git submodule update
novamente.
git submodule update --remote
eu recomendo o uso de mais sinalizadores para projetos mais complexos. Eu usogit submodule update --remote --recursive --init