di responsabilità, ho il sospetto io sono solo un paio di giorni di fronte a voi istruzionene su sottostruttura :-)
Se si sta usando solo git subtree push
non stanno dando sottostruttura informazioni sufficienti per estrarre e spingere le tue modifiche.
Se clonate correttamente il repo, il sottoalbero sarà già lì. La sottostruttura deve essere informata su quale sottostruttura vuoi spingere (anche se ne hai una sola) e deve anche sapere dove spingere - in particolare, non vuoi spingere al repository di primo livello. Quindi, si desidera qualcosa di simile:
git subtree push --prefix=lib [email protected]:arges-github/lib.git master
Ovviamente il pronti contro termine e refspec dovrebbe essere cambiato per abbinare il vostro repo.
Se si desidera esaminare ciò che sta accadendo qui (e aiuta) la sottostruttura in realtà divide le modifiche che riguardano i file all'interno della sottostruttura in un ramo diverso e quindi la spinge al repository di sottostruttura. Per vedere questo accada, utilizzare subtree split
git subtree split --rejoin --branch=shared-changes --prefix=lib
Dai un'occhiata al ramo che hai fatto:
git checkout lib-changes
e, spingere manualmente
git push [email protected]:arges-github/lib.git master
Se questo non è lavorando allora potrebbe essere che non hai fuso la sottostruttura nel tuo repository. Quando si aggiunge una sottostruttura:
git subtree add --squash --prefix lib [email protected]:arges-github/lib.git master
è anche necessario per unire la sottostruttura e spingerlo di nuovo al vostro repo livello superiore.
fonte
2012-10-10 12:56:42
Come hai aggiunto la sottostruttura al tuo progetto di primo livello? Hai appena creato una directory e clonata? –
Ciao! Ho aggiunto la sottostruttura al mio progetto di livello superiore usando "git subtree add". Forse la mia domanda non è abbastanza chiara: se clonato il repository su un'altra macchina, ho tutti i file di progetto più la sottostruttura "lib". Ora cambio qualcosa nella sottostruttura "lib" nel repository clonato, non posso spingere le modifiche sul server remoto usando "git subtree push", questo è il mio problema. – arge
La risposta è stata d'aiuto? –