2014-12-02 14 views
14

Mamy repozytorium oparte na git-flow, gdzie dodaliśmy zewnętrzną bibliotekę jako poddrzewo (używając Atlitian SourceTree's git subtree) w gałęzi rozwojowej.poddrzewo git połączyło się w katalogu głównym repozytorium (w. Git-flow)

Project/ 
    Library/ 
    X/ 
    Y/ 
    Z/ 

Później zrobiliśmy git flow release, scalanie zmian z przekształcić master (release).

Problem polega na tym, że podczas sprawdzania wzorca, zawartość biblioteki zostaje umieszczona w katalogu głównym repozytorium zamiast w bibliotece wewnętrznej, tak jakby utracił przedrostek git subtree podczas scalania.

Project/ 
    X/ 
    Y/ 
    Z/ 

Każdy pomysł, co poszło nie tak?

+0

jesteś pewien, że był pierwszy w podfolderze? Co się stanie, jeśli utworzysz nową gałąź ze starego mistrza i spróbuj raz jeszcze, czy to się powtórzy? – iberbeu

+0

Tak jest. W gałęzi rozwojowej znajduje się podfolder. Był to proces wydawania git-flow, który najwyraźniej nie zachował wskaźnika poddrzewa. –

+2

Coś głupie pytanie, ale gdzie jest twój folder .git? –

Odpowiedz

1

Sam poddrzewa ma własny katalog główny w swoim własnym oddziale. Zobacz http://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging, aw szczególności:

Chcesz wyciągnąć projekt stojaka do projektu nadrzędnego jako podkatalogu . Możesz to zrobić w Git przy pomocy drzewa-odczytu git. Dowiesz się więcej o drzewie-przeczytaniu i jego znajomych w rozdziale 9, ale na razie poznasz , który odczytuje drzewo główne jednego oddziału w bieżącym obszarze roboczym. Wystarczy włączyć z powrotem do swojego mistrza oddziału, i wyciągnąć gałąź stojak do podkatalogu regału oddziale panem swojego głównego projektu:

$ git odczytu drzewo prefix = rack/-u rack_branch

+0

To opisuje strategię łączenia poddrzewa, używam git-subtree (zobacz https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt). –

Powiązane problemy