Git误推非目标分支到远程仓库,如何撤销错误推送保留正确分支?
解决方案
直接删除远程仓库上误推送的branch1即可,这个操作完全不会影响已经正常推送的branch2内容,执行命令:
git push origin --delete branch1
补充说明
- 该命令只会移除远程仓库中
branch1的分支指针,不会改动branch2的任何提交记录、文件内容,你本地存储的branch1分支也不会受影响。如果后续不需要保留本地的branch1,可以额外执行命令清理本地分支:git branch -d branch1 - 哪怕你创建
branch2时是基于branch1切出、branch2的提交历史包含branch1上的提交,删除远程branch1也不会造成branch2的内容损坏。Git会自动保留所有被现存有效分支(也就是你保留的branch2)引用的提交对象,不会出现提交丢失的问题。 - 如果执行删除命令时提示权限不足,一般是远程仓库开启了分支保护,到仓库设置页面临时关闭
branch1的保护规则后重新执行删除命令即可。 - 操作完成后可以执行以下命令拉取远程分支列表做校验,确认远程仅保留你需要的分支即可:
git fetch origin --prune git branch -r
不要用
git reset、提交回滚类的操作处理这个问题,这类操作是用来修改单个分支的提交链的,在这个场景下完全多余,反而容易提高误操作的概率。
内容的提问来源于stack exchange,提问作者sigil
相关产品推荐
相关产品推荐

