Git误推送至错误受保护远程分支,无法强推/删除分支如何解决
解决方法
操作步骤
- 进入本地项目2对应的仓库目录,切换到存储项目2代码的本地分支,先确认所有项目2的代码修改都已经提交完成:
# 查看当前工作区状态 git status # 如果存在未提交的修改,执行以下命令提交 git add . git commit -m "完成项目2开发" - 拉取远程project2分支的历史记录,允许无关历史合并且指定合并策略为完全保留本地内容,忽略远程误推的项目1代码:
git pull origin projects/project2 --allow-unrelated-histories -s ours - 执行完成后直接正常推送即可,本次推送是基于远程已有提交的新增提交,符合受保护分支的推送规则,不会被拦截:
git push origin HEAD:projects/project2
逻辑说明
受保护分支禁止强制推送的核心限制是不允许篡改已有提交历史,仅允许在原有历史基础上新增提交。上述操作先将远程project2的误推提交拉到本地完成合并,合并后生成的新提交是远程已有提交的后继提交,完全符合推送规则,同时
-s ours参数保证了合并后的代码完全为本地的项目2代码,不会残留之前误推的项目1内容。
内容的提问来源于stack exchange,提问作者Eduardo Matsuoka
相关产品推荐
相关产品推荐

