2012-08-02 8 views
14

biegnę:Git checkout inny oddział

git checkout mygithub/master 

ale z jakiegoś powodu, bieganie „stan git” pokazuje „nie obecnie na oddziale”. Uruchamianie:

, a następnie git status, mówi, że jestem teraz na oddziale. Teraz chcę przejść do innej gałęzi. Działa git checkout anotherbranch działa, ale git status mówi, że nadal jestem na gałęzi "master". Co ja robię źle?

+0

Czy 'git checkout anotherbranch' produkuje jakieś wyjście? – poke

+0

Pokazuje brak wyjścia, brak błędu. – NoBugs

Odpowiedz

18

mygithub/master to oddział zdalny. Aby utworzyć lokalny oddział w oparciu o zdalną gałąź, musisz użyć git checkout -b mymaster mygithub/master. Git próbuje ci to ułatwić: jeśli napiszesz git checkout branchname, a nazwa gałęzi będzie występować tylko w zdalnym, ale nie lokalnie, Git automatycznie utworzy lokalny oddział z numerem <remote>/branchname będącym jego rodzica.

+0

Dlaczego więc nazwa gałęzi git checkout nigdy się nie zmienia? Oddział istnieje na Github, chcę tylko scalić z nim główne zmiany. – NoBugs

+0

@NoBugs: 'git checkout -b remotemaster mygithub/master' powinien utworzyć nowy oddział off' mygithub/master' i przejść do niego. – knittl

+0

'git checkout -b otherbranch mygithub/otherbranch' działa, ale' git merge mygithub/master' chce "przewinąć do przodu" i usunąć pliki z non-master, które chcę zachować. – NoBugs

9

Jeśli chcesz, aby przełączyć się do innego oddziału, a następnie uruchomić polecenie:

git checkout branch name 

Jeśli chcesz usunąć gałąź następnie uruchom polecenie:

git branch -D branch name 

Jeśli chcesz utworzyć nowy Oddział następnie uruchomić to polecenie:

git checkout -b branch