如何从远程标签执行"git checkout -b <branchname>"

Ser*_*rgi 31 git git-branch

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

git checkout -b test origin/deploy
Run Code Online (Sandbox Code Playgroud)

原点是远程的,部署是我要检查的标签,但我明白了

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

更新: 我刚刚发现了

git fetch --all -t
Run Code Online (Sandbox Code Playgroud)

我的工作不正常.当它下载所有分支时,它不会下载所有标签,因此当我签出部署时它是旧标签.现在我执行

git fetch --all && git fetch -t
Run Code Online (Sandbox Code Playgroud)

这样,当我基于标签创建新分支时

git checkout -b test deploy
Run Code Online (Sandbox Code Playgroud)

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

Joo*_*aat 29

我不确定你能直接做到这一点.你可能会坚持做一个获取然后结账:

git fetch origin
git checkout -b test tag-name
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我不建议使用像"部署"这样的标签名称.


Skä*_*nen 23

我不是一个git guru,但我之前使用过这样的东西,它似乎运行良好:

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

  • 确保您要跟踪的分支存在.即首先做一个git fetch,或git pull,或者git远程更新等. (2认同)

小智 5

你需要跑

git pull
git checkout -b <new-branch-name> remotes/origin/<source-branch-name>
Run Code Online (Sandbox Code Playgroud)