2013-06-16 16 views
12

Od Pro Git:Nie można utworzyć lokalną i zdalną Branch (tracking) w tym samym czasie

można skonfigurować inne śledzenie oddziałów, jeśli chcesz - te, które NIE gałęzie ścieżki na pochodzenie i Don Śledzić główny oddział. Prosta przypadek jest przykładem właśnie zobaczyłem, działa git checkout -b [gałąź] [remotename]/[gałąź]

$ git usługi Checkout --track pochodzenie/serverfix Oddział serverfix skonfigurować do torowych zdalnego branży odn/remote/origin/serverfix. Przełączono do nowego oddziału "serverfix" "serverfix"

$ git checkout -b sf origin/serverfix Branch sf skonfigurowany do śledzenia zdalnych gałęzi refs/remote/origin/serverfix. Przełączono do nowej gałęzi "sf"

W moim rozumieniu jest to sposób na utworzenie oddziału lokalnego i gałęzi upstream.

Ale kiedy zrobić:

git checkout -b iss53 origin/iss53 uzyskać:
fatal: Cannot update paths and switch to branch 'iss53' at the same time.

I kiedy zrobić:
git checkout --track origin/iss53 uzyskać:

krytyczny: Nie można zaktualizować ścieżek i przejść do oddziału "iss53" w tym samym czasie . Czy masz zamiar zrealizować zamówienie "origin/iss53", które nie może być rozwiązane jako commit?

Dlaczego?

Odpowiedz

7
Cannot update paths and switch to branch 

Jak wspomina w "Get new upstream branch with git", można spróbować:

# let's create a new local branch first 
git checkout -b iss53 
# then reset its starting point 
git reset --hard origin/iss53 

Upewnij się, że remote tracking branchorigin/iss53 istnieje pierwszy (po git fetch origin)

origin/iss53 oznacza nastąpił iss53 na zdalnym repo upstream, do którego odwołuje się origin.

Gdyby nie był taki oddział, a następnie utworzyć tylko lokalny oddział iss53 i wsuń go tak:

git push -u origin iss53 

To by ustalić związek między lokalnym oddziale iss53 i branży zdalnego śledzenia origin/iss53 (śledzenie nowo utworzonego oddziału iss53 na origin, utworzonego przez naciśnięcie).

Zobacz "Why do I need to explicitly push a new branch?", aby uzyskać więcej informacji na temat tego pierwszego wprowadzenia.

+0

Ale jak mogę utworzyć 'pochodzenia/iss53' w pierwszej kolejności? – Jim

+0

@Jim Edytowałem odpowiedź, aby odpowiedzieć na Twoje pytanie. – VonC

+0

Podpowiedź, aby uzyskać od "w górę", a nie "pochodzenie" w odnośnej odpowiedzi (http://stackoverflow.com/questions/15730551/get-new-upstream-branch-with-git/15731197#15731197) zaginął. –

4

Wygląda na to, że jeszcze nie wykonałeś tego polecenia.Więc najpierw zrobić:

git fetch origin 

, a następnie:

git checkout --track origin/iss53