还原更改
在极狐GitLab 中,您可以还原单个提交或整个合并请求。
当您在 Git 中还原一个提交时,您会创建一个新提交,反转原始提交所做的所有操作。新提交:
- 删除原始提交中添加的行。
- 恢复原始提交中删除的行。
- 恢复原始提交中修改的行,恢复到其先前的状态。
您的 还原提交 仍然受到项目访问控制和流程的限制。
还原合并请求
在合并请求合并后,您可以还原合并请求中的所有更改。
前提条件:
- 您必须在项目中拥有允许编辑合并请求和向代码库添加代码的角色。
-
您的项目必须使用在项目的 设置 > 合并请求 中设置的 合并方式 合并提交。
在 GitLab 16.9 及以后版本中,您可以从 GitLab 用户界面还原快进提交,前提是:
- 提交已被压缩,或
- 合并请求只包含一个提交。
要还原合并请求 Example
:
- 在左侧边栏中,选择 搜索或跳转 并找到您的项目。
- 选择 代码 > 合并请求。
- 在次级菜单中,选择 已合并,然后选择您的合并请求(此处为
Example
)。 - 滚动到合并请求报告区域,并找到显示 合并者 信息的报告。
- 选择 还原。
- 在 还原到分支 中,选择要将更改还原到的分支。
- 要立即还原而不创建合并请求:
- 清除 启动新合并请求。
- 选择 还原,
Example
的还原操作完成。
- 要在新合并请求中审查还原内容而不是立即还原,请选择 启动新合并请求,然后:
- 填写还原合并请求的字段,然后选择 创建合并请求。
- 当合并请求合并时,
Example
的还原操作完成。
在您还原了 Example
合并请求后,将不再显示 还原 选项。
还原提交
您可以将任何提交还原到以下位置之一:
- 当前分支。
- 新的合并请求。
前提条件:
- 您在项目中的角色必须允许您编辑合并请求,并向代码库添加代码。
- 提交不能已经被还原,因为此时不会显示 还原 选项。
执行步骤:
- 在左侧边栏中,选择 搜索或跳转 并找到您的项目。
- 如果您知道包含该提交的合并请求:
- 选择 代码 > 合并请求,然后选择您的合并请求。
- 选择 提交,然后选择您要还原的提交标题。 这将以合并请求的上下文显示该提交。
- 在次级菜单下,GitLab 会显示 查看提交
00001111
,其中00001111
是提交的哈希值。选择提交哈希值以显示该提交的页面。
- 如果您不知道提交来源于哪个合并请求:
- 选择 代码 > 提交。
- 选择提交标题以显示该提交的详细信息。
- 在右上角,选择 选项,然后选择 还原。
- 在 还原到分支 中,选择要将更改还原到的分支。
- 要立即还原而不创建合并请求:
- 清除 启动新合并请求。
- 选择 还原。
- 要在新合并请求中审查还原内容而不是立即还原,请选择 启动新合并请求,然后:
- 填写还原合并请求的字段,然后选择 创建合并请求。
- 当合并请求合并时,提交的还原操作完成。
将合并提交还原到不同的父提交
当您还原合并提交时,您合并到的分支(通常是 main
)始终是第一个父提交。要将合并提交还原到不同的父提交,您必须从命令行还原该提交,参见 使用 Git 还原和撤销更改。
从代码库中去除文本
- 在极狐GitLab 17.1 中引入,使用名为
rewrite_history_ui
的标志。默认禁用。GitLab 团队成员可以在此机密问题中查看更多信息:https://gitlab.com/gitlab-org/gitlab/-/issues/450701
- 在极狐GitLab 17.2 版本为 JihuLab.com 启用。
- 在极狐GitLab 17.3 版本为私有化部署版本启用。
永久删除意外提交的敏感或机密信息,确保它在您代码库的历史记录中不再可访问。将一系列字符串替换为 ***REMOVED***
。
另外,要完全删除代码库中特定的文件,请参见 移除二进制文件。
前提条件:
- 您必须拥有该项目的所有者角色。
要从代码库中删除文本:
- 在左侧边栏中,选择 搜索或跳转 并找到您的项目。
- 选择 设置 > 仓库。
- 展开 仓库维护。
- 选择 删除文本。
- 在抽屉中输入要删除的文本。 您可以使用正则表达式和通配符模式。
- 选择 删除匹配的字符串。
- 在确认对话框中,输入您的项目路径。
- 选择 是,删除匹配的字符串。
- 在左侧边栏,选择 设置 > 一般。
- 展开 高级。
- 选择 运行清理。