如何从远程标签</branchname>进行“git checkout -b <branchname>”

时间:2011-09-27 16:39:27

标签: git git-branch

我正在尝试从远程标记创建分支,但似乎没有办法做到这一点。当我尝试

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?

更新 我刚刚发现了

git fetch --all -t

对我不起作用。当它下载所有分支时,它不会下载所有标签,因此当我签出部署时它是旧标签。现在我执行

git fetch --all && git fetch -t

当我基于标签

创建新分支时这样
git checkout -b test deploy

新分支是最新部署的最新版本。

4 个答案:

答案 0 :(得分:29)

我不确定你能否直接这样做。你可能会坚持做一个获取然后结账:

git fetch origin
git checkout -b test tag-name

顺便说一下,我不建议使用像“deploy”这样的标签名称。

答案 1 :(得分:23)

我不是一个git guru,但之前我曾经使用过这样的东西,它似乎工作得很好:

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

答案 2 :(得分:4)

你需要运行

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

答案 3 :(得分:0)

列出所有标签

git fetch
git tags -l 

创建指向标签的本地分支

git checkout tags/<tag_name> -b <branch_name>
git checkout -b <branch_name> tags/<tag_name>