2013-07-24 12 views
8

Próbuję utworzyć gitsubtree istniejącego repozytorium, na przykład:Jak mogę utworzyć Gitsubtree istniejącego repozytorium?

-> Projecta/projectB

Projekt A jest rodzicem, chcę dodać Projekt B jako poddrzewa git.

git poddrzewa -P projectB ssh: //[email protected]/projectB.git mistrz

Ale to się nie powiedzie, a pojawi się następujący komunikat:

przedrostek „projectB ' już istnieje.

Nie chcę ponownie pobierać całego repozytorium, chcę tylko dodać ten katalog do mojego programu gitsubtree.

Ten projekt katalogu B nie jest śledzony przez git Project A.

góry dzięki

+1

Czy folder projectB już istnieje? Jeśli tak, to zawiera wszystko? Podpole Git odmówi utworzenia poddrzewa, jeśli katalog, w którym zostanie umieszczony, zawiera cokolwiek. – LopSae

+0

Wydaje się niemożliwe obecnie (git v2.0), jeśli folder projectB już istnieje, i usunięcie istniejącego katalogu projectB z 'rm -rf projectB' następnie wykonaj' git subtree dodaj projectB_directory [email protected]/projectB.git master' aby pobrać ponownie to jedyny wybór. – Allen

Odpowiedz

4

Możesz dodać projectB jako poddrzewa Projecta wykorzystaniem wanilię git (nie trzeba git subtree).

cd projectA 
git remote add projectB_remote [email protected]/projectB.git 
git fetch projectB_remote 
git checkout -b projectB_branch projectB_remote/master 
git checkout master 
git read-tree --prefix=projectB/ -u projectB 

Wyjaśnienie

  1. Wprowadź lokalną projectA repo.
  2. Dodaj nowy pilot o nazwie projectB_remote z adresem URL projektu B.
  3. Pobierz projectB_remote bez scalania.
  4. Tworzenie i kasowanie a projectB_branch; przynieś pliki projectB_remote/master.
  5. Powrót do projectA/master.
  6. Utwórz poddrzewo w numerze projectA/master, które zawiera informacje o kasa projectB_branch.

wynikowa Struktura katalogów

projectA 
    projectB 
    other.txt 
    project.txt 
    A.txt 
    files.txt 

Zobacz http://www.git-scm.com/book/en/v1/Git-Tools-Subtree-Merging

0

Dodając poddrzewa, wydaje się, że prefiks (podkatalogu, w którym można dodać poddrzewa) nie może już istnieć.

Pracowałem nad tym problemem, sprawdzając zatwierdzenie przed tym podkatalogem, dodając podtekst git, a następnie scalając go z gałęzią zawierającą moją starą zawartość podkatalogu.

Powiązane problemy