在本地和远程重命名 Git 分支?
Rename a Git branch locally and remotely?
有没有办法在本地重命名 Git 分支并将其推送到远程分支,即使已经有很多提交推送到远程分支?
或者,是否需要新建一个本地分支,删除旧的本地分支,然后在远程仓库上重复操作?
是的,
存在 move
在本地重命名分支的功能
git branch --move <old_name> <new_name>
但是要推送它,你必须删除旧的并推送新的
git checkout <new_name>
git push origin [--set-upstream] <new_name>
git push origin --delete <old_name>
--set-upstream
is optional, it configure the new local branch to track the pushed one
您可以使用以下简写形式:
本地移动 (--move) :
git branch -m <old_name> <new_name>
推送新分支(--set-upstream,可选):
git push origin [-u] <new_name>
删除(--删除):
git push origin -d <old_name>
注意。
感谢 torek 的评论:
顺便说一句,值得一提的是你应该
- 通知共享上游的其他用户您将执行此操作,并且
- 按照显示的顺序执行此操作(设置新名称,然后删除旧名称)。
#1 的原因是那些用户需要调整。
#2 的原因主要是效率:它避免了必须将对象重新复制到上游存储库,该上游存储库会在分支删除时删除提交(大多数裸存储库都这样做,并且大多数接受推送的存储库都是裸存储库)
有没有办法在本地重命名 Git 分支并将其推送到远程分支,即使已经有很多提交推送到远程分支?
或者,是否需要新建一个本地分支,删除旧的本地分支,然后在远程仓库上重复操作?
是的,
存在 move
在本地重命名分支的功能
git branch --move <old_name> <new_name>
但是要推送它,你必须删除旧的并推送新的
git checkout <new_name>
git push origin [--set-upstream] <new_name>
git push origin --delete <old_name>
--set-upstream
is optional, it configure the new local branch to track the pushed one
您可以使用以下简写形式:
本地移动 (--move) :
git branch -m <old_name> <new_name>
推送新分支(--set-upstream,可选):
git push origin [-u] <new_name>
删除(--删除):
git push origin -d <old_name>
注意。
感谢 torek 的评论:
顺便说一句,值得一提的是你应该
- 通知共享上游的其他用户您将执行此操作,并且
- 按照显示的顺序执行此操作(设置新名称,然后删除旧名称)。
#1 的原因是那些用户需要调整。
#2 的原因主要是效率:它避免了必须将对象重新复制到上游存储库,该上游存储库会在分支删除时删除提交(大多数裸存储库都这样做,并且大多数接受推送的存储库都是裸存储库)