2013-03-31 16 views
11

Rozwinąłem repozytorium i cała moja praca trafia do tego widelca (moje pochodzenie) i łączę gałęzie w górę z żądaniami ściągania. Całkiem standardowe.Zdobądź nową gałąź oddziału z git

Ale teraz istnieje repozytorium w repozytorium i nie mogę się dowiedzieć, jak uzyskać lokalnie nowy oddział, a następnie wypchnąć go do mojego pochodzenia. Oto moja sytuacja.

$ git remote show origin 
* remote origin 
    Fetch URL: [email protected]:rackspace/jclouds.git 
    Push URL: [email protected]:rackspace/jclouds.git 
    HEAD branch: master 
    Remote branches: 
    1.5.x     tracked 
    master     tracked 
    Local branch configured for 'git pull': 
    master merges with remote master 
    Local ref configured for 'git push': 
    master pushes to master (up to date) 

$ git remote show upstream 
* remote upstream 
    Fetch URL: https://github.com/jclouds/jclouds 
    Push URL: https://github.com/jclouds/jclouds 
    HEAD branch: master 
    Remote branch: 
    master tracked 
    Local ref configured for 'git push': 
    master pushes to master (up to date) 

Wiem, że istnieje gałąź 1.6.x w jclouds/jclouds i chcę, aby ta gałąź lokalnie, a następnie wcisnąć go do Rackspace/jclouds. Próbowałem tę komendę

$ git fetch upstream 1.6.x 
From https://github.com/jclouds/jclouds 
* branch   1.6.x  -> FETCH_HEAD 

I wygląda na to pobrane gałąź, ale nie widzę go w git remote show lub git branch -a więc jestem w stanie skonfigurować lokalny oddział śledzenia.

Czego mi brakuje?

Odpowiedz

17

ta powinna być na tyle

# I prefer fetching everything from upstream 
git fetch upstream 

# Then I track the new remote branch with a local branch 
git checkout -b 1.6.x --track upstream/1.6.x 
git push origin 1.6.x 

Jeżeli istnieją problemy aktualizacji jak:

fatal: Cannot update paths and switch to branch '1.6.x' at the same time. 
Did you intend to checkout 'upstream/1.6.x' which can not be resolved as commit?" 

A jeśli to nie działa albo:

git checkout upstream/1.6.x -b 1.6.x 

Następnie prostsza wersja :

# let's create a new local branch first 
git checkout -b 1.6.x 
# then reset its starting point 
git reset --hard upstream/1.6.x 

Co OP Everett Toews ma do czynienia w jego sprawie:

Ultimately I had to explicitly add the upstream branch with

git remote add --track 1.6.x upstream-1.6.x https://github.com/jclouds/jclouds 

and then:

git pull upstream-1.6.x 1.6.x 
+0

zrobiłem git sprowadzić, ale gdy próbuję kasę git pojawia się błąd " fatal: Nie można zaktualizować ścieżek i przełączać się do gałęzi "1.6.x" w tym samym czasie. Czy masz zamiar dokonać "upstream/1.6.x", którego nie można rozwiązać jako zatwierdzenia? " –

+0

@EverettToews sprawiłoby, że' git checkout upstream/1.6.x -b 1.6.x' działałoby lepiej? – VonC

+0

@EverettToews, jeśli to nie robi ' t pracy, dodałem w odpowiedzi opcję "reset", aby spróbować. – VonC

Powiązane problemy