2014-12-02 14 views
14

Abbiamo un repository, basato su git-flow, in cui abbiamo aggiunto una libreria esterna come sottostruttura (usando la sottostruttura git di Atlassian SourceTree) sul ramo di sviluppo.sottostruttura git unita nella radice del repository (con git-flow)

Project/ 
    Library/ 
    X/ 
    Y/ 
    Z/ 

Più tardi abbiamo fatto un git flow release, fondendo i cambiamenti da sviluppare in master (release).

Il problema si verifica quando si esegue il controllo di master, il contenuto di Library viene inserito nella root del repository anziché all'interno di Library, come se avesse perso il prefisso git subtree durante l'unione.

Project/ 
    X/ 
    Y/ 
    Z/ 

Qualche idea di cosa non funziona?

+0

sei sicuro che fosse il primo in una sottocartella? Cosa succede se crei una nuova diramazione dal vecchio master e provi di nuovo il tutto, si ripresenta? – iberbeu

+0

Sì, lo è. Nel ramo di sviluppo si trova su una sottocartella. Era il processo di rilascio di git-flow che sembra non aver conservato il puntatore della sottostruttura. –

+2

Una specie di domanda stupida, ma dove si trova la tua cartella .git? –

risposta

1

La sottostruttura stessa ha la propria directory radice sul proprio ramo. Vedere http://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging, in particolare:

si vuole tirare il progetto rack nel vostro progetto principale come sottodirectory. Puoi farlo in Git con git read-tree. Imparerai lo in più sull'albero di lettura e i suoi amici nel Capitolo 9, ma per ora sai che legge l'albero radice di un ramo nella tua area di gestione temporanea corrente e nella directory di lavoro. È appena passati di nuovo al vostro branch master , e si tira il ramo cremagliera nella sottodirectory rack di vostra filiale padrone del tuo progetto principale:

$ git lettura albero --prefix = cremagliera/rack_branch -u

+0

Che descrive la strategia di fusione della sottostruttura, sto usando git-subtree (vedere https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt). –

Problemi correlati