Как сделать "git checkout -b <branchname>" из удаленного тега

Я пытаюсь создать ветку из удаленного тега, но, похоже, нет способа сделать это. Когда я пытаюсь

git checkout -b test origin/deploy

где origin - удаленный, а deploy - тег, который я хочу проверить, но я получаю

fatal: git checkout: updating paths is incompatible with switching branches.
Did you intend to checkout 'origin/deploy' which can not be resolved as commit?

UPDATE: Я только что обнаружил, что

git fetch --all -t

не работал должным образом. Хотя он загружает все ветки, он не загружает все теги, поэтому, когда я проверил развертывание, это был и старый тег. Теперь я выполняю

git fetch --all && git fetch -t

Таким образом, когда я создаю новую ветку на основе тега

git checkout -b test deploy

новая ветка обновляется с последним развертыванием.

Ответ 1

Я не гуру git, но раньше я использовал что-то подобное, и, похоже, он работал нормально:

git pull (or fetch, just need to make sure you are updated)
git checkout -b test remotes/origin/deploy

Ответ 2

Я не уверен, что вы можете сделать это напрямую. Вероятно, вы застряли в выполнении выборки, а затем в кассе:

git fetch origin
git checkout -b test tag-name

Кстати, я бы не рекомендовал использовать имя тега, например "deploy".

Ответ 3

Вам нужно запустить

git pull
git checkout -b <new-branch-name> remotes/origin/<source-branch-name>