Git 分支命名(包含版本)

Git branch naming (containing version)

我的 Git 分支名称有一些问题。

我想将远程分支 'a/develop' 重命名为 'a/develop/1.0'。

但无法重命名。 :(

我的代码如下。

git branch -m a/develop/1.0

git 推送原点:a/develop a/develop/1.0

错误信息是锁定失败

我的命名代码有什么问题? 请回答我的问题。 谢谢!~

(从你的问题中不清楚哪个命令失败;我假设第一个命令失败。)

这里的根本问题是 a/develop 这个名字是 a/develop/ directory/folder 的 "in the way" (选择你喜欢的词,这里两个意思是一样的)必须存在才能使名称 a/develop/1.0 存在。

现在,显然 a/develop 重命名为 a/develop/1.0 后,a/develop 本身不再用作分支名称。但是重命名完成之前,a/develop。如果 Git 将 "create directory/folder and rename" 作为一个单独的操作执行,它会起作用——但它不是:Git 首先尝试创建 directory/folder,但 a/develop 是顺便说一下,那部分失败了,然后 Git 永远不会重命名 a/develop.

解决方案是暂时将 a/develop 重命名为其他任何东西,例如 a/b。现在 a/develop 不存在,可以将 a/b 重命名为 a/develop/1.0

请注意,如果您这样做,并且如果 a/develop 存在于您的 "upstream" 上(您 git push),上游将有同样的问题:它不会无法创建 a/develop/1.0,因为它自己的 a/develop 会挡道。您将需要相同的两步过程(重命名或删除,并在重命名或创建之前完成)。