Вы дали git checkout
три интересующих предмета (я немного изменил порядок здесь для целей обсуждения, но эффект тот же):
-b milestone2-fixes
cf15dd0dcb0c8b0de0bd0c96c9cfaa897c961715
origin/testing
Первая часть, -b milestone2-fixes
, сообщает git checkout
, что она должна создать новую ветвь ипереключитесь на ту ветку, что нормально.Однако эта форма git checkout
, т.е. с использованием -b
, может взять не более одного дополнительного объекта интереса.Вы должны выбрать, какой дополнительный элемент отбрасывать.
Вы можете запустить:
git checkout -b milestone2-fixes cf15dd0dcb0c8b0de0bd0c96c9cfaa897c961715
Это создает ветку с коммитом cf15dd0dcb0c8b0de0bd0c96c9cfaa897c961715
какего хэш-идентификатор, проверяющий фиксацию cf15dd0dcb0c8b0de0bd0c96c9cfaa897c961715
в процессе.Новая ветвь не имеет восходящего набора.
git checkout -b milestone2-fixes origin/testing
Это создает ветку с любым хеш-идентификатором origin/testing
в качестве хеш-идентификатора новой ветки, проверяякоторые совершают в процессе.Новая ветвь имеет origin/testing
в качестве восходящего потока.
Если origin/testing
преобразуется в хэш-идентификатор cf15dd0dcb0c8b0de0bd0c96c9cfaa897c961715
, вторая форма команды выполняет все, что вы хотите сразу.Если нет, используйте первую форму команды, и если вы все еще хотите, чтобы origin/testing
был установлен как восходящий поток новой ветви, используйте git branch --set-upstream-to
, чтобы установить это позже.