git - 如何撤消 merge 请求及其提交?

标签 git gitlab git-merge git-revert

我做了一个 merge request到我的分行 develop在 gitlab 上。
然后我意识到我犯了一个巨大的错误。
我赶紧推了revert按钮,我认为一切正常,但不是。
Gitlab 只做 revert犯罪。在日志中仍然有来自源分支的提交。它会导致许多版本问题。有什么办法可以在 gitlab 平台上恢复单个 merge 请求并从许多不需要的提交中清除分支日志。我希望我的分支就像这个 merge 请求从来没有地方一样。

最佳答案

首先新建一个分支keepsafe将所有这些更改保留在某处,以防万一您搞砸了。这将在本地“复制”当前状态并将其保存在 Remote 上。

git checkout -b keepsafe
git push

现在回去开发。 X是您要删除的提交数。
git checkout develop
git reset --hard HEAD~X
git push -f

将硬重置本地开发到原始提交。 git push -f将覆盖远程分支。所有提交都将消失。

请注意,GitLab 允许管理员禁用强制推送 (git push -f),因此如果这不起作用,您需要与管理员交谈。但是无论如何你应该这样做。

关于git - 如何撤消 merge 请求及其提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53739019/

相关文章:

git - 松动物体的原因是什么?它们可以被 `git prune` 安全地移除吗?

gitlab - Git 显示合并提交,列出比合并文件更多的文件

git - Sourcetree:查看一个分支是否被 merge

git - --no-ff merge 如何打破平分和指责?

amazon-web-services - AWS ElasticBeanstalk 从 Gitlab 注册表中提取 Docker 镜像

git - 如何 rebase merge 但保留 merge 提交

提交中包含的 gitignore 设置

git - 如何撤消 git pull 并保留未提交的更改

git - 如何更新git提交作者,但修改时保留原始日期?

ruby-on-rails - GitLab 安装后重定向到第 422 页