【问题标题】:Git clone does not bring master branchgit clone 不带master分支
【发布时间】:2010-01-06 19:20:39
【问题描述】:

我有一个远程仓库http://github.com/fernandezpablo85/Test

这个 repo 有一个 master 分支,但它在另外两个分支后面,所以当我克隆它时,我得到了这个警告:

警告:远程 HEAD 引用不存在的 ref,无法结帐。

而且我也没有本地的master 分支(git branch 没有显示任何内容)。

我可以解决所有问题:

git checkout -b master origin/master

但我想知道为什么会这样? master 应该是更 advanced 的分支吗?还是我的仓库有其他问题?

【问题讨论】:

  • @Pablo:为什么:因为您删除了一个远程分支,您在该分支上推送了一些提交(而不是在远程主控上)。 GitHub 部分仅与他们的管理控制台相关,将已删除的远程分支显示为默认分支,并阻止用户将默认分支更改为 master。那一点是 GUI 问题,而不是 Git 问题。
  • @Elimnatas 你为什么要这样编辑我的问题?
  • @Pablo: 据称是因为 meta.stackexchange.com/questions/2950/… ,但您可以根据需要回滚该编辑。
  • 我们正在培养像机器一样的人!它让我毛骨悚然:S

标签: git remote-branch


【解决方案1】:

如果你只想克隆 master 分支,那么运行这个命令:

git clone git@github.com:**username**/ **Repository URL** -b master

这是一个例子:

git clone git@github.com:gfranko/jquery.selectBoxIt.js.git -b master

【讨论】:

    【解决方案2】:

    1/ 不,master 不是最高级的分支。只能发布到另一个分支,然后删除该分支...

    2/ 当这种情况发生时,你应该从 github repo 的管理面板中选择 master 作为默认分支,但这并不总是可行的。见this bug

    对于遇到此问题的其他人:

    tekkub 告诉我如何通过 freenode #github 频道解决这个错误。

    • 创建一个临时分支,
    • 将其推送到您的仓库,
    • 在管理面板中为该仓库选择默认分支,
    • 然后删除分支并再次推送。

    为我们工作。

    (想法是临时有两个分支,以便能够使用GUI管理面板默认选择master,然后删除额外的分支)

    【讨论】:

    • 好的。这是解决问题的方法,谢谢。但我想知道为什么会发生这种情况。或者至少要知道它是否是 github 问题而不是 git 问题
    • @Pablo:为什么:因为您删除了一个远程分支,您在该分支上推送了一些提交(而不是在远程主控上)。 GitHub 部分仅与他们的管理控制台相关,将已删除的远程分支显示为默认分支,并阻止用户将默认分支更改为 master。那一点是 GUI 问题,而不是 Git 问题。
    【解决方案3】:

    我们的一个存储库也有类似的问题,尽管在我们的例子中,github 管理面板将“master”显示为默认分支,但默认情况下结帐会获得不同的分支。将默认设置更改为其他分支之一,然后返回“master”解决了我们的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      • 2012-05-22
      • 2018-08-08
      • 2014-07-05
      • 1970-01-01
      相关资源
      最近更新 更多