git格式修补程序致命:参数不明确

git格式修补程序致命:参数不明确,git,branch,patch,Git,Branch,Patch,我有一个分支,branding,它从branchv8.2.3(这也是分支点上的一个标记)分支。我想为branding分支制作一个补丁,将其移动到更高版本,但git说分支名称不明确,不会创建补丁 我想知道这是因为版本分支名称与标记相同吗 您只需输入一个类型即可 在v和8之间有一个额外的 您的标签名为v8.2.3white l=在LCI中,您将其称为v.8.2.3 在git分支中,标记、头等只是对给定提交的引用。当您使用其中任何一个时,git只需转换为给定的提交并使用SHA-1 由于您有typogi

我有一个分支,branding,它从branch
v8.2.3
(这也是分支点上的一个标记)分支。我想为branding分支制作一个补丁,将其移动到更高版本,但git说分支名称不明确,不会创建补丁

我想知道这是因为版本分支名称与标记相同吗


您只需输入一个类型即可

在v和8之间有一个额外的

您的标签名为
v8.2.3
white l=在LCI中,您将其称为
v.8.2.3

在git分支中,标记、头等只是对给定提交的引用。当您使用其中任何一个时,git只需转换为给定的提交并使用SHA-1

由于您有
typo
git可以找到SHA-1,因此它会显示错误

例如:查看
.git/ref/head/mastar的内容,您将看到SHA-1与任何其他标记、分支等中的内容一样。

两个问题:

  • 您的命令包含输入错误。根据您的
    gitk
    屏幕截图,标记的名称是
    v8.2.3
    ,但您在命令中写入了
    v.8.2.3
    (注意“v”后面的额外句号):

    git format-patch v.8.2.3 --stdout > branding.patch
    
    错误消息如下:

    […]未知修订[…]

    这应该给你一个关于错误原因的提示

  • 您有一个分支和一个名为
    v8.2.3
    的标记。这是有问题的,因为如果在Git命令中不使用“完全限定的”
    v8.2.3
    引用,Git就会将该引用理解为标记。如果要引用同名分支,则需要指定
    res/heads/v8.2.3
    。您应该努力为标记和分支使用不同的名称。跑

    git branch -m v8.2.3 <new-branch-name>
    
    git分支-mv8.2.3
    
    要重命名分支,其中
    表示更合适的分支名称


  • 这似乎只是一个打字错误。根据您的
    gitk
    屏幕截图,标记的名称是
    v8.2.3
    ,但您在命令中写入了
    v.8.2.3
    (注意“v”后的额外句点):
    git格式补丁v.8.2.3--stdout>branding.patch
    。错误消息显示“未知修订[…]”;这应该给你一个关于错误原因的提示。@Jubobs谢谢。这将错误减少为
    警告:refname“v8.2.3”不明确
    我是否可以告诉它应该使用标记名,还是使用分支名?(他们都在同一点上)谢谢。这将错误减少为
    警告:refname“v8.2.3”不明确
    我是否可以告诉它应该使用标记名,还是使用分支名?(它们都在同一点上)找到标签/分支的sha-1,然后使用它。使用
    git descripe
    分支名称很不幸,我无法控制,但谢谢你的建议。
    refs/heads/v8.2.3
    很容易知道,而不是查找和使用散列“红色角落有Jubobs,蓝色角落有codeWizard,这是致命的战斗,战斗!”;)@托比,当然,你必须做你认为正确的事。