【发布时间】:2012-11-27 08:24:13
【问题描述】:
所以我在 github 上建立了一个项目,一切都很好。现在我想创建一个新分支。
这是我所做的:
- 创建了一个新的本地分支
- 将新分支推送到 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指的是一个分支。