无法签出以连字符开头的git分支( - )

时间:2013-12-04 12:06:34

标签: git

我克隆了一个git存储库 此存储库具有类似 -feature-abc 的远程分支 当我输入git checkout -feature-abc时,我得到:

error: unknown switch `e'

知道怎么签出这个分支吗?

2 个答案:

答案 0 :(得分:10)

尝试使用以下语法:

git checkout -- -feature-abc

双连字符语法应该有助于git将命令选项与实际的分支名称参数分开,正如我之前在“Deleting a badly named git branch”中所解释的那样。


如果不起作用,您可以按照“How do I rename a local Git branch?

中建议的配方进行操作

进入工作副本的.git / refs / heads,找到文件名“-dumb-name”,获取分支的哈希值。然后,这将检查出来,创建一个具有合理名称的新分支,并删除旧分支。

  
      
  • 进入您的工作副本.git/refs/heads
  •   
  • 找到名为“-feature-abc”的文件,
  •   
  • 获取分支的哈希值(cat文件)。
  •   
  • 然后检查出来,用一个合理的名字建立一个新的分支,并删除旧分支。
  •   
git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name

答案 1 :(得分:7)

最后,我能够根据VonC的Answer开始工作。

解决方案1:

git checkout -b feature-abc origin/-feature-abc

解决方案2:

  
      
  • 进入您的工作副本.git/refs/remotes/origin
  •   
  • 找到名为“-feature-abc”的文件,
  •   
  • 获取分支的哈希值(cat文件),
  •   
  • 然后检查出来,用一个合理的名字建立一个新的分支,
  •   
  • 制作新的分支跟踪远程分支。
  •   
git checkout {hash}
git checkout -b feature-abc
git branch --set-upstream-to=origin/-feature-abc feature-abc

Make an existing Git branch track a remote branch?