2013-02-22 17 views
17

Chciałbym utworzyć lokalny oddział na podstawie innego oddziału. Na przykład mam wpisać:Tworzenie innej gałęzi w oparciu o gałąź Git

git checkout -b feature1 release1.1.3

Potem otrzymujemy:

fatal: git checkout: updating paths is incompatible with switching branches.

Na czym polega problem z tym?

+0

Does 'release1.1.3' istnieje? Zobacz to pytanie http://stackoverflow.com/questions/945654/git-checkout-on-a-remote-branch-does-notwork. –

Odpowiedz

13

Aby utworzyć oddział na podstawie innej gałęzi, najprostszym sposobem jest najpierw wykupienie gałęzi podstawowej, a następnie utworzenie z niej nowego oddziału. Jeśli dobrze rozumiem twoje pytanie, właśnie to chcesz zrobić.

Teraz, gdy używasz flagi -b w swoim oddziale, możesz mieć zmiany, które chcesz zachować. Jeśli tak jest, powinieneś umieścić je na skrytce, sprawdzić gałąź bazy, utworzyć nową gałąź i otworzyć skrytkę.

4

Masz na myśli git branch feature1 release1.1.3 zakładając, że chcesz, aby gałąź o nazwie feature1 była oparta na zatwierdzeniu release1.1.3. To, co tam wywołujesz, powinno również działać, ale w twoim drzewie roboczym znajduje się również aktualny folder o nazwie "release1.1.3", a git zaczyna się zastanawiać, czy masz na myśli gałąź/tag czy folder.

Możesz spróbować po prostu podać rzeczywisty identyfikator zatwierdzenia wersji1.1.3.

10

Najpierw wykonaj git pull, aby upewnić się, że wszystkie lokalne oddziały są aktualne. A potem możesz przeciąć gałąź.

Składnia jest

$ git checkout -b <branch> --track <remote>/<branch> 

lub

$ git checkout <remote>/<branch> -b <branch> 
+5

'git checkout -b ' jest ważny jest dobrze, który wygląda jak OP, czy nie? –

+0

@FelixKling dziękuję, właśnie zaktualizowałem mój post. – zsong

3
git branch <new-branch-name> <existing-branch-name> 
Powiązane problemy