# Revert[](#revert "Permalink")

您可以使用 Git 的强大功能，通过在合并请求和提交详细信息中单击" **还原"**按钮来[还原任何提交](https://git-scm.com/docs/git-revert "Git 恢复文档") .

## Reverting a merge request[](#reverting-a-merge-request "Permalink")

**注意：** " **还原"**按钮仅可用于自 GitLab 8.5 起创建的合并请求. 但是，您仍然可以通过从"提交"页面列表中还原合并提交来还原合并请求.**注意：**仅对使用合并方法"合并提交"的项目显示" **还原"**按钮，该方法可以在项目的**"设置">"常规">"合并请求"**下**设置** . 无法通过 MR 视图还原[快进提交](fast_forward_merge.html) .

合并请求合并后，将有一个**还原**按钮可用于还原该合并请求引入的更改.

[![Revert Merge Request](img/fe7d77556848be98a93c7b6516b0e6f8.png)](img/cherry_pick_changes_mr.png)

单击该按钮后，将出现一个模式，您可以在其中选择将更改直接还原到所选分支中，也可以选择使用还原更改创建新的合并请求.

合并请求恢复后，" **恢复"**按钮将不再可用.

## Reverting a commit[](#reverting-a-commit "Permalink")

您可以从提交详细信息页面还原提交：

[![Revert commit](img/b4e821b8b83e29e837f01f4620e557b7.png)](img/cherry_pick_changes_commit.png)

与还原合并请求类似，您可以选择将更改直接还原到目标分支中，也可以选择创建新的合并请求以还原更改.

恢复提交后，" **恢复"**按钮将不再可用.

请注意，还原合并提交时，主线将始终是第一父级. 如果要使用其他主线，则需要从命令行执行.

这是一个使用第二个父级作为主线还原合并提交的快速示例：

```
git revert -m 2 7a39eb0 
```