首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >除主外,Git不能切换分支。

除主外,Git不能切换分支。
EN

Stack Overflow用户
提问于 2018-07-31 07:17:40
回答 2查看 310关注 0票数 0

我对git很陌生,我正试着做一个分叉和克隆的回购。在我的电脑里,我可以看到树枝。

代码语言:javascript
复制
c:\>git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/dev
  remotes/origin/master
  remotes/upstream/dev
  remotes/upstream/master

和,

代码语言:javascript
复制
C:\>git branch -r
  origin/HEAD -> origin/master
  origin/dev
  origin/master
  upstream/dev
  upstream/master

但当我做的时候

代码语言:javascript
复制
c:\> git checkout master
Already on 'master'
Your branch is up to date with 'origin/master'.

c:\> git checkout dev
error: pathspec 'dev' did not match any file(s) known to git.

有人能告诉我为什么我不能转到dev分公司吗?我搜索了一下,更新了git (现在是2.18.0.windows.1)。然而,这个问题仍然存在。

编辑:当我在桌面应用程序中随机尝试时,它就被解决了。我打开了windows git桌面软件。点击选项“添加本地存储库”,并选择我克隆回购的文件夹。然后我点了一下放下的树枝,就可以看到dev在那里。当我选择它时,它切换到那个分支,命令提示符问题也得到了解决。现在我可以切换到masterdev了。我不知道当我这么做的时候内部发生了什么,但现在起作用了。

EN

回答 2

Stack Overflow用户

发布于 2018-07-31 07:32:40

来自man git-checkout (git help checkout):

如果没有找到<branch>,但确实存在一个具有匹配名称的远程(称为<remote>)的跟踪分支,则将其视为等效于 $ git结账-b --跟踪/

因此,通常情况下,git checkout dev只会工作并做正确的事情。在您的情况下,它不起作用的原因是您有两个遥控器,originupstream,它们都包含一个dev分支,所以Git不知道该签出哪一个。

在这种情况下,您将不得不使用更长的表单来代替:

代码语言:javascript
复制
git checkout -b dev --track origin/dev

-b dev创建一个名为dev的本地分支,这样您就不会以“分离头”状态结束。--track origin/dev将其设置为跟踪分支,这样您就可以正确地推拉它。

实际上,--track-b提供了一个正常的缺省值,因此可以将其缩短为:

代码语言:javascript
复制
git checkout --track origin/dev
票数 4
EN

Stack Overflow用户

发布于 2018-07-31 07:20:51

您没有名为dev的本地分支。你需要把原产的树枝取到你的本地(你的机器)。

您可能需要尝试这样的方法:

代码语言:javascript
复制
git fetch origin
git checkout dev
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51607530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档