撤销 Git 仓库中的更改
还原未提交的更改
在提交更改之前,您始终可以撤销本地进行的修改:
在 提交 工具窗口 Alt+0 中,选择要还原的一个或多个文件,并在上下文菜单中选择 回滚 ,或者按 Ctrl+Alt+Z。
在打开的对话框中,检查要还原的文件列表。
选中 删除已添加文件的本地副本 复选框,以还原添加的文件以及修改过的文件中的更改。
自上次提交以来对选中文件所做的所有更改将被丢弃,并且这些文件将从当前变更列表中移除。
取消暂存文件
默认情况下,GoLand 使用 变更列表 概念,在其中会自动暂存已修改的文件。
如果某个文件已被版本控制,但您不准备提交该文件,您可以:
将其从提交中移除 :在 更改 区域中的 提交 工具窗口中不要选择该文件。
如果您更习惯于暂存概念,请在 版本控制 | Git 设置页面 Ctrl+Alt+S 中选择 启用暂存区域 选项。
此外,默认情况下 GoLand 会建议将每个新创建的文件添加到版本控制中。 您可以在 中,通过 创建文件时 和 删除文件时 设置更改此行为。
撤销上一次提交
GoLand 允许您撤销当前分支中的最后一次提交。
打开 Git 工具窗口 Alt+9 并切换到 日志 选项卡。
选择当前分支中的最后一次提交,并从上下文菜单中选择 撤销提交。
在打开的对话框中,选择将要丢弃的更改移动到的变更列表。 您可以从 名称 列表中选择现有变更列表,也可以指定新变更列表的名称(默认使用提交注释)。
输入可选注释。 新的变更列表提交到版本库时,该注释将显示在 注释 文本区域的 提交更改 对话框中。
如果您希望将包含要丢弃更改的变更列表设为活动变更列表,请选择 设为活动(A) 选项。
如果您希望 GoLand 在该变更列表变为活动状态时记住您的上下文并重新加载编辑器中已打开的文件,请选择 跟踪上下文 选项。
还原已推送的提交
如果您发现某个已推送提交中的错误,可以还原该提交。 此操作将生成一个新提交,用于反向更改您想要撤销的提交的影响。 因此,项目历史得以保留,原始提交仍然保持不变。
在 日志 选项卡中的 Git 工具窗口 Alt+9 中找到您要还原的提交,右键单击它并从上下文菜单中选择 还原提交。 该选项也可以从文件 历史记录 视图中提交的上下文菜单中获得。 将打开 提交更改 对话框,并自动生成提交消息。
如果选择的提交中包含多个文件,而您只需还原其中部分文件,请取消选择不需要还原的文件。
点击 提交 ,提交一个更改集,用于还原该提交中选中文件的更改。
还原选定的更改
如果某次已推送的提交包含多个文件,且您只需还原其中部分文件,GoLand 允许您撤销选定更改。
在 日志 视图中选择包含要丢弃更改的提交。
在 已更改的文件 窗格中,右键点击您要还原的文件,并在上下文菜单中选择 还原所选更改。
这将生成一个新的提交,以撤销您想要还原的更改。
丢弃某个提交
与记录在分支历史中的 还原提交 不同,您可以在当前分支中丢弃某个已推送提交,而不会留下任何操作痕迹。
在 日志 视图中选择要丢弃的提交,并从上下文菜单中选择 丢弃提交。
将分支重置到特定提交
如果您在一组最近的提交中发现错误并想重新处理该部分,可以将仓库回滚到特定状态。 您可以通过将当前分支的 HEAD 重置为指定提交来完成此操作(如果希望操作在历史记录中不体现撤销内容,也可选择重置索引与工作区)。
打开 版本控制 工具窗口 Alt+9 并切换到 日志 选项卡。
选择您希望将 HEAD 移动到的提交,并从上下文菜单中选择 将当前分支重置到此处。
在打开的 Git 重置 对话框中,选择要如何更新工作区和索引,然后点击 重置:
软重置 :所有在所选提交之后创建的提交中的更改将被暂存(即它们将被移动到 提交 窗口,以便您进行查看,并在必要时再提交)。
混合重置 :所选提交之后所作的更改将被保留,但不会被暂存用于提交。
硬重置 :所选提交之后的所有更改都将被丢弃(包括暂存和提交的内容)。
保留 :所选提交之后的提交更改将被丢弃,但本地更改会被保留。
获取某个文件的先前版本
如果您只需还原单个文件,而不是放弃包含多个文件更改的整个提交,您可以恢复该文件的特定版本:
在任何视图中选择所需的文件(如 项目 工具窗口 Alt+1 、编辑器、 提交 窗口等)。
从主菜单中选择 Git | 选中文件 | 显示历史记录 ,或从所选项的上下文菜单中选择 Git | 显示历史记录。 历史记录 选项卡会添加到 Git 工具窗口中,显示所选文件的历史记录,并允许您查看和比较各个修订版本。
确认要回退到的修订版本后,在列表中选择该版本并从上下文菜单中选择 获取。