È possibile farlo con i sottomoduli in git. Nel repository, fai:
git submodule add path_to_repo path_where_you_want_it
Quindi, se repository della biblioteca aveva un URL di git://github.com/example/some_lib.git
e si voleva a lib/some_lib
nel progetto, devi inserire:
git submodule add git://github.com/example/some_lib.git lib/some_lib
notare che questa necessità da fare dalla directory di primo livello nel tuo repository. Quindi non scrivere cd
nella directory in cui lo stai mettendo per primo.
Dopo aver aggiunto un modulo, o ogni volta che qualcuno fa un checkout fresco del repository, è necessario fare:
git submodule init
git submodule update
E poi tutti i sottomoduli che hai aggiunto sarà controllato allo stesso revisione che hai
Quando si desidera aggiornare ad una nuova versione di una delle biblioteche, cd
nel modulo e tirare:
cd lib/some_lib
git pull
Poi, quando si esegue una git status
si dovrebbe vedere lib/somelib
elencati nella sezione modificata. Aggiungi quel file, esegui il commit e sei aggiornato. Quando un collaboratore inserisce tale commit nel proprio repository, vedrà lib/somelib
come modificato fino a quando non verrà eseguito nuovamente git submodule update
.
Grazie per la tua risposta, svalutato! (e probabilmente lo accetterò domani) C'è un modo per aggiungere un solo file all'altro repository come una dipendenza? O deve essere un'intera cartella? –
Se vuoi tracciarlo come un sottomodulo (e quindi, essere in grado di inserire facilmente gli aggiornamenti) dovrai inserire l'intero repository. A differenza di molti altri VCS, git vuole solo occuparsi del repository di primo livello. – Emily
[leggi questo] (https://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/) per sapere a cosa serve un sottomodulo e le soluzioni per aggirare il problema potenziali problemi. e [una discussione a riguardo] (https://news.ycombinator.com/item?id=3904932). – minghua