Puede hacerlo con submódulos en git. En su repositorio, hacer:
git submodule add path_to_repo path_where_you_want_it
lo tanto, si el repositorio de la biblioteca tenía una URL de git://github.com/example/some_lib.git
y que lo quería en lib/some_lib
en su proyecto, que le escriba:
git submodule add git://github.com/example/some_lib.git lib/some_lib
en cuenta que este necesidades para hacer desde el directorio de nivel superior en su repositorio. Entonces no lo haga cd
en el directorio donde lo está poniendo primero.
Después de agregar un submódulo, o cada vez que alguien hace una copia nueva de su repositorio, usted tiene que hacer:
git submodule init
git submodule update
Y entonces todos los submódulos que ha añadido será comprobado a cabo al mismo revisión que tienes.
Cuando se desea actualizar a una nueva versión de una de las bibliotecas, cd
en el submódulo y afloja:
cd lib/some_lib
git pull
Entonces, cuando se hace una git status
debería ver lib/somelib
enumerados en la sección modificada. Agrega ese archivo, confirma y estarás actualizado. Cuando un colaborador extraiga esa confirmación en su repositorio, verán lib/somelib
como modificado hasta que vuelvan a ejecutar git submodule update
.
Gracias por su respuesta, votada! (y probablemente lo acepte mañana) ¿Hay alguna forma de agregar solo un archivo del otro repositorio como dependencia? ¿O tiene que ser una carpeta completa? –
Si desea rastrearlo como un submódulo (y por lo tanto, ser capaz de obtener actualizaciones fácilmente) tendrá que extraer todo el repositorio. A diferencia de muchos otros VCS, git solo quiere tratar con el repositorio de nivel superior. – Emily
[lea esto] (https://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/) para saber para qué sirve un submódulo y las formas de solucionarlo problemas potenciales. y [una discusión al respecto] (https://news.ycombinator.com/item?id=3904932). – minghua