【问题标题】:funny refname error when creating a new remote branch创建新的远程分支时出现有趣的 refname 错误
【发布时间】:2012-11-27 08:24:13
【问题描述】:

所以我在 github 上建立了一个项目,一切都很好。现在我想创建一个新分支。

这是我所做的:

  1. 创建了一个新的本地分支
  2. 将新分支推送到 github

问题来了: 在推送到我的遥控器期间,我收到此错误:

Repository ssh://git@github.com/<username>/ProjectColossus.git

funny refname
error: refusing to create funny ref 'workingBranch' remotely

我的远程仓库被称为 origin,所以我尝试按照 stackoverflow 上的另一个答案中的建议使用该引用名,但我得到了同样的错误。我也尝试在远程推送之前的“Target Ref Name:”字段中使用与我的新本地分支相同的名称,但我真的不确定此时我在做什么。我知道有一些关于 git 远程推送我没有得到的东西,所以一点解释会非常有帮助。我对 git 和版本控制很陌生,但我是一名中级程序员(从一月份开始第二年的 CS)。

【问题讨论】:

  • 你运行了什么命令? git push origin workingBranch:workingBranch?我不明白为什么这个分支名称会被认为很有趣。
  • 请提供您尝试过的确切命令。
  • 我从未使用过 egit,但我怀疑是 this code 返回错误。鉴于分支名称看起来不错,这可能是因为它没有被推送到 refs/heads。如果有关于推送位置的选项,您可以尝试 refs/heads/workingBranch。
  • @jszakmeister 是的,这就是我最终做的事情。我不确定 refs/heads/ 是什么意思,但我将它作为新分支名称的前缀并且它有效。
  • @ScubaSteve Pro Git 书籍在这里很有用。它描述了how refs work,Git User's Manual 也谈到了它们。基本上,所有裁判所做的都是指向一个提交。分支在refs/heads 下,标签在refs/tags 下,遥控器在refs/remotes 下。所以refs/heads/workingBranch 指的是一个分支。

标签: eclipse git github egit


【解决方案1】:

在 Target Ref Name 中,可能您必须添加 refs/heads:

refs/heads/name_of_your_new_branch

在您的具体情况下:

refs/heads/workingBranch

(至少,它是 Bitbucket 的方式 - egit,Eclipse 的 Eclipse 插件)

【讨论】:

  • 忘记了这个问题..但是是的..我几乎是如何解决的
【解决方案2】:

我发现 EGit 在您创建标签时期望类似 V0.0.1 的东西有点愚蠢(将标签放置到本地存储库中的 /refs/tags/V0.0.1 位置)和当您将标签推送到远程存储库时,它希望提供像 /refs/tags/V0.0.1 这样的 refname

【讨论】:

  • 我对 EGit 的体验是它非常繁琐。地狱,所有的 Eclipse 都是挑剔的。我现在是 .Net 开发人员,这是一个与众不同的世界。
【解决方案3】:

值得一提的是,我们刚刚遇到了这个问题——我们正在使用 VS2013 并使用 /refs/heads/ 创建一个分支时出现了错误。 我们最终从 Atlassian 下载了 Source Tree(我们使用 Stash 来存放我们的代码)。这显示了一个“未提交的更改”,即 DesignTimeResolveAssemblyReferencesInput.cache 文件被更改 - VS2013 正在做的事情。 我们撤消了此更改并创建了一个新分支,这解决了问题。

如果上述方法不起作用,希望这将为某人指明正确的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多