2013-02-22 3 views
17

Я хотел бы создать локальную ветку на основе другой ветви. Например, я типа:Создание ветки git на другой ветке

git checkout -b feature1 release1.1.3

После того, что я получаю:

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

В чем проблема с этим?

+0

ли 'release1.1.3' существует? См. Этот вопрос http://stackoverflow.com/questions/945654/git-checkout-on-a-remote-branch-does-not-work. –

ответ

13

Чтобы создать ветку на основе другой ветви, самый простой способ - сначала проверить базовую ветвь, а затем создать новую ветку оттуда. Если я правильно понимаю ваш вопрос, это именно то, что вы хотите сделать.

Теперь, когда вы используете флаг -b в своем ветвлении, у вас могут быть рабочие изменения, которые вы хотите сохранить. Если это так, вы должны нажать их на кошелек, проверить базовую ветку, создать новую ветку и всплыть.

4

Вы имели в виду git branch feature1 release1.1.3, предполагая, что ветвь с названием feature1 должна основываться на фиксации release.1.1.3. То, что вы назвали там, должно также работать, но у вас также есть фактическая папка с именем «release1.1.3» в рабочем дереве, и git смущается о том, имеете ли вы значение branch/tag или папку.

Вы можете попробовать просто указать фактический идентификатор фиксации release.1.1.3.

10

Сделайте git pull первым, чтобы убедиться, что все ваши местные филиалы являются актуальными. И тогда вы можете разрезать ветку.

Синтаксис является

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

или

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

'git checkout -b ' действительно, это похоже на то, что имеет OP, или нет? –

+0

@FelixKling спасибо, я только что обновил свой пост. – zsong

Смежные вопросы