如果有一个存储库,我只有git://访问(通常只是推+拉),是否有一种方法重命名该存储库中的分支,以同样的方式,我将在本地用git branch -m?
当前回答
你只需要用你想要的名字创建一个新的本地分支,把它推到你的远程,然后删除旧的远程分支:
$ git branch new-branch-name origin/old-branch-name
$ git push origin --set-upstream new-branch-name
$ git push origin :old-branch-name
然后,要查看旧的分支名称,存储库的每个客户端必须执行以下操作:
$ git fetch origin
$ git remote prune origin
注意:如果你的旧分支是你的主分支,你应该改变你的主分支设置。否则,当你运行$ git push origin:old-branch-name时,你会得到错误“禁止删除当前分支”。
其他回答
当然。只需在本地重命名分支,推送新分支,并推送旧分支的删除。
唯一真正的问题是存储库的其他用户不会重命名本地跟踪分支。
按照以下步骤更改分支名称:
Git branch -m old_branchname new_branchname Git推送源:old_branchname new_branchname Git push——set-upstream origin new_branchname
之后取回原点
Git获取来源 Git远程删除源文件
你只需要用你想要的名字创建一个新的本地分支,把它推到你的远程,然后删除旧的远程分支:
$ git branch new-branch-name origin/old-branch-name
$ git push origin --set-upstream new-branch-name
$ git push origin :old-branch-name
然后,要查看旧的分支名称,存储库的每个客户端必须执行以下操作:
$ git fetch origin
$ git remote prune origin
注意:如果你的旧分支是你的主分支,你应该改变你的主分支设置。否则,当你运行$ git push origin:old-branch-name时,你会得到错误“禁止删除当前分支”。
如果你在用Github…
你可以使用github.com上的UI创建一个基于旧名称分支的新分支:
除了已经给出的答案,下面是一个版本,它首先检查新分支是否已经存在(因此您可以安全地在脚本中使用它)
if git ls-remote --heads "$remote" \
| cut -f2 \
| sed 's:refs/heads/::' \
| grep -q ^"$newname"$; then
echo "Error: $newname already exists"
exit 1
fi
git push "$oldname" "$remote/$oldname:refs/heads/$newname" ":$oldname"
(检查来自这个答案)
推荐文章
- git pull -rebase和git pull -ff-only之间的区别
- GitHub -致命:无法读取用户名https://github.com':没有这样的文件或目录
- 撤消git平分错误
- 使用.gitconfig配置diff工具
- 如何配置Mac OS X术语,使git有颜色?
- Visual Studio Code: .git文件夹/文件隐藏
- “node_modules”文件夹应该包含在git存储库中吗
- 为什么git-rebase给了我合并冲突,而我所做的只是压缩提交?
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据