【问题标题】:Undo the new merge request in Gitlab在 Gitlab 中撤消新的合并请求
【发布时间】:2018-02-05 19:56:20
【问题描述】:

我错误地将提交推送到我的 Gitlab。我该如何撤消它?

【问题讨论】:

标签: gitlab


【解决方案1】:

简单的方法是在合并的合并请求中点击revert按钮。

Click for Reference docs

从 UI 恢复合并请求的步骤:

  1. 单击还原按钮 这将创建一个新分支 rever-some_sha.2
  2. 选择新的合并请求并提交。

[或]

  1. 在本地结帐至revert-some_sha,添加您想要的任何更改。
  2. 创建一个合并请求并点击合并到master。

建议:定期为您的分支创建一个rebase,以便在 master 之上。这样可以避免任何冲突,并有助于在合并分支之前捕获任何失败的测试。

【讨论】:

  • 我在尝试恢复 MR 时收到以下错误:“抱歉,我们无法自动恢复此合并请求。此合并请求可能已经恢复,或者最近的提交可能更新了一些其内容。”这是否意味着我必须手动创建一个新的 MR 将所有内容都更改回来?
  • 我有另一个 MR,我正在尝试恢复(它没有我在上面评论中提到的那个旧)并且我收到一条“已超过截止日期”的消息。这是什么意思?
  • @HisDivineShadow 有点混乱。您推送的 MR1,当您尝试还原时,您得到了Sorry, we cannot revret....。然后你要恢复另一个 MR2,它抛出了Deadline Exceeds。如果我错了,请纠正我。如果是这种情况,请让所有正在推送到这个主分支的人停止。检查提交树或使用source tree。樱桃选择要恢复或重置的提交。检查这个stackoverflow.com/questions/34572096/…
  • @HisDivineShadow 在将任何内容推送到远程之前,您必须在本地手动执行此操作。正如我假设的那样,你的遥控器已经搞砸了,你不应该把它弄得太复杂。
  • 我应该更清楚一点。 MR 页面上有一个 Revert 按钮。对于上述两种情况,我都遇到了这些错误,我只是想知道它们的含义。我最终创建了新的本地分支并使用git revert 命令恢复提交,然后推送更改并创建新的合并请求,
【解决方案2】:

我引用rednaw:

您可以使用 git revert 恢复提交。这将创建 一个新的提交,它恢复您指定的提交的更改 与。

请注意,您仅还原该特定提交,而不是之后的提交 那。如果你想恢复一系列提交,你可以这样做 这个:

git revert <oldest_commit_hash>..<latest_commit_hash>

请注意,这个命令有点搞笑。它实际上并没有 恢复使用自身指定的提交,但是 在此之后提交,直到并包括 .

查看 git-revert 手册页以获取有关 git 的更多信息 还原命令。另请查看此答案以获取有关的更多信息 恢复提交。

注意这个revert命令也会删除对应的本地 文件

【讨论】:

  • 我在本地项目中进行了还原,但在 gitlab 中,按钮创建合并请求并没有消失
猜你喜欢
  • 2011-09-22
  • 1970-01-01
  • 2021-06-04
  • 2018-07-05
  • 2019-05-13
  • 1970-01-01
  • 1970-01-01
  • 2019-04-12
相关资源
最近更新 更多