重命名远程分支而不删除它

Vik*_*ore 17 git

我需要你的帮助来重命名远程分支。
我创建了一个 PR,但现在我需要重命名远程分支名称。
我不想遵循必须重命名本地分支然后推送并删除旧分支的过程,因为这会清除 PR。
有没有办法只重命名远程分支,而 PR 应该保持原样。谢谢。

bla*_*ami 19

在 Git 中重命名远程分支实际上只是创建一个具有相同提交和新名称的新分支并删除旧分支。根据您打开拉取请求的位置(您没有提及是 Github、Gitlab、Phabricator 还是其他东西),您可能会通过在存在拉取请求的本地存储库上操作的工具为您提供一些选项。我只能说,对于 Github,没有在其界面中重命名分支的选项,也没有在拉取请求中更改“比较”分支的选项。

最好的解决方案(对于 Github)可能是创建一个新分支和新的拉取请求,对旧的拉取请求发表评论,表示它“已关闭以支持#NEW”和“#OLD 的延续”到新的拉取请求。然后删除旧分支,这也将关闭旧的拉取请求。

用于删除旧分支创建具有相同内容的新分支的快速 oneliner是:

git push <remote> <remote>/<old>:refs/heads/<new> :<old>
Run Code Online (Sandbox Code Playgroud)

其中remote是明显的 - 例如起源,oldnew分别是旧分支和新分支的名称。

  • @flipdoubt相同的哈希值,基本上操作是将旧分支名称签出为新分支名称(以便这些分支具有相同的历史记录)并删除旧分支。 (2认同)