Revert changes
You can revert individual commits or an entire merge request in GitLab.
When you revert a commit in Git, you create a new commit that reverses all actions taken in the original commit. The new commit:
- Removes the lines added in the original commit.
- Restores the lines removed in the original commit.
- Restores the lines modified in the original commit to their previous state.
Your revert commit is still subject to your project’s access controls and processes.
Revert a merge request
After a merge request merges, you can revert all changes in the merge request.
Prerequisites:
- You must have a role for the project that allows you to edit merge requests, and add code to the repository.
-
Your project must use the merge method Merge Commit, set in your project’s Settings > Merge requests.
In GitLab 16.9 and later, you can revert fast-forwarded commits from the GitLab UI if either:
- The commits are squashed, or
- The merge request contains a single commit.
To revert merge request Example
:
- On the left sidebar, select Search or go to and find your project.
- Select Code > Merge requests.
- From the secondary menu, select Merged, and select your merge request (here,
Example
). - Scroll to the merge request reports area, and find the report showing the Merged by information.
- Select Revert.
- In Revert in branch, select the branch to revert your changes into.
- To revert immediately, without a merge request:
- Clear Start a new merge request.
- Select Revert, and the revert of
Example
is complete.
- To review the revert in a new merge request instead of reverting immediately,
select Start a new merge request, then:
- Fill in the fields for your revert merge request, then select Create merge request.
- When the merge request merges, the revert of
Example
is complete.
After you revert the Example
merge request, the option to Revert is no longer shown on it.
Revert a commit
You can revert any commit in a repository into either:
- The current branch.
- A new merge request.
Prerequisites:
- Your role for the project must allow you to edit merge requests, and add code to the repository.
- The commit must not have already been reverted, as the Revert option is not shown in this case.
To do this:
- On the left sidebar, select Search or go to and find your project.
- If you know the merge request that contains the commit:
- Select Code > Merge requests, then select your merge request.
- Select Commits, then select the title of the commit you want to revert. This displays the commit in the context of your merge request.
- Below the secondary menu, GitLab shows the message Viewing commit
00001111
, where00001111
is the hash of the commit. Select the commit hash to show the commit’s page.
- If you don’t know the merge request the commit originated from:
- Select Code > Commits.
- Select the title of the commit to display full information about the commit.
- In the upper-right corner, select Options, then select Revert.
- In Revert in branch, select the branch to revert your changes into.
- To revert immediately, without a merge request:
- Clear Start a new merge request.
- Select Revert.
- To review the revert in a new merge request instead of reverting immediately,
select Start a new merge request, then:
- Fill in the fields for your revert merge request, then select Create merge request.
- When the merge request merges, the commit revert is complete.
Revert a merge commit to a different parent commit
When you revert a merge commit, the branch you merged to (often main
) is always the
first parent. To revert a merge commit to a different parent, you must revert the commit from
the command line, see Revert and undo changes with Git.
Redact text from repository
- Introduced in GitLab 17.1 with a flag named
rewrite_history_ui
. Disabled by default. GitLab team members can view more information in this confidential issue:https://gitlab.com/gitlab-org/gitlab/-/issues/450701
- Enabled on GitLab.com in confidential issue
https://gitlab.com/gitlab-org/gitlab/-/issues/462999
in GitLab 17.2. - Enabled on self-managed and GitLab Dedicated in confidential issue
https://gitlab.com/gitlab-org/gitlab/-/issues/462999
in GitLab 17.3.
Permanently delete sensitive or confidential information that was accidentally committed, ensuring
it’s no longer accessible in your repository’s history.
Replaces a list of strings with ***REMOVED***
.
- Open merge requests might fail to merge and require manual rebasing.
- Existing local clones are incompatible with the updated repository and must be re-cloned.
- Pipelines referencing old commit SHAs might break and require reconfiguration.
- Historical tags and branches based on the old commit history might not function correctly.
- Commit signatures are dropped during the rewrite process.
Alternatively, to completely delete specific files from a repository, see Remove blobs.
Prerequisites:
- You must have the Owner role for the project.
To redact text from your repository:
- On the left sidebar, select Search or go to and find your project.
- Select Settings > Repository.
- Expand Repository maintenance.
- Select Redact text.
- On the drawer, enter the text to redact. You can use regex and glob patterns.
- Select Redact matching strings.
- On the confirmation dialog, enter your project path.
- Select Yes, redact matching strings.
- On the left sidebar, select Settings > General.
- Expand Advanced.
- Select Run housekeeping.
Related topics
- Official
git revert
documentation - Undo changes by using Git
- Revert a commit with the Commits API
- How changelogs handle reverted commits