我和我的同事一直在尝试制定一个清晰、一致的程序来在本地和远程重命名 git 分支。
假设我们oldname
在本地和远程都有一个分支,并且想要将其重命名为newname
,并且我们已经oldname
按照https://stackoverflow.com/a/30590238/1592322(以及互联网上的其他类似建议)签出了本地分支,这些步骤适用于我的同事:
git branch -m newname
git push --set-upstream origin newname
而我必须遵循显式取消设置上游信息的中间步骤(正如我在上面提供的同一堆栈溢出链接中的 user:22992 所建议的那样):
git branch -m newname
git branch --unset-upstream
git push --set-upstream origin newname
如果我的同事使用我的(稍长的)程序,那么第二个附加步骤git branch --unset-upstream
会导致错误:
Fatal: The current branch newname has no upstream branch.
所以我们不能使用相同的一致程序,并且猜测我们通常只需要注意这一点。在我看来,git branch -m
不同 git 版本之间的行为不同。这个对吗?为什么行为上有差异?
我的同事正在运行 git version version 2.18.0.windows.1 。而我在 macOS 10.13.6 上运行 2.17.2 (Apple Git-113)。