Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t签出git分支以连字符(-)开始_Git - Fatal编程技术网

Can';t签出git分支以连字符(-)开始

Can';t签出git分支以连字符(-)开始,git,Git,我克隆了一个git存储库。 此存储库有一个远程分支,类似于功能abc 当我键入git checkout-feature abc时,我得到: error: unknown switch `e' 知道如何签出此分支吗?尝试使用以下语法: git checkout -- -feature-abc 双连字符语法应该有助于git将命令选项与实际的分支名称参数分开,正如我前面在“”中解释的那样 如果不起作用,您可以按照“”中建议的配方操作 进入工作副本的.git/refs/heads,找到文件名“-d

我克隆了一个git存储库。
此存储库有一个远程分支,类似于功能abc

当我键入git checkout-feature abc时,我得到:

error: unknown switch `e'
知道如何签出此分支吗?

尝试使用以下语法:

git checkout -- -feature-abc
双连字符语法应该有助于git将命令选项与实际的分支名称参数分开,正如我前面在“”中解释的那样


如果不起作用,您可以按照“”中建议的配方操作

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

  • 进入工作副本的
    .git/refs/heads
  • 查找名为“
    -功能abc
    ”的文件
  • 获取分支的散列(
    cat
    文件)
  • 然后检查它,用一个合理的名称创建一个新分支,并删除旧分支

最后,我能够在VonC的基础上工作

解决方案1:

git签出-b功能abc原点/-功能abc

解决方案2:

  • 进入工作副本的
    .git/refs/remotes/origin
  • 查找名为“
    -功能abc
    ”的文件
  • 获取分支的散列(
    cat
    文件)
  • 然后检查一下,用一个合理的名字创建一个新分支
  • 使新分支跟踪远程分支

尝试在名称周围使用引号(“)。@PMF我尝试使用单引号和双引号,但运气不佳。同样的错误。@PMF不同意:
git
可执行文件将在
argv
中看到相同的字符串。嗯,是的。这不是一个好主意:-(解决方案1在签出中使用“--”不起作用。它给出了错误“错误:pathspec'-feature tipslist'与git已知的任何文件都不匹配。“解决方案2也不起作用。没有文件名'-feature abc'inside'.git/refs/heads',因为我还无法签出该分支。您没有提到该分支是远程分支。我的解决方案将使用
origin/-feature abc
而不是
-feature abc
。但是+1仍然有效。”。
git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name
git checkout {hash}
git checkout -b feature-abc
git branch --set-upstream-to=origin/-feature-abc feature-abc