回滚文件

在前面的小节中,您已经了解了如何创建仓库向其提交内容,但是如果您犯了一个错误并希望"回滚"到上一次提交,会发生什么呢?让我们犯一个故意的错误,然后看看我们如何处理它。

首先,创建一个新的资源 -- 在本例中,我们将创建一个脚本资源 -- 最初您将不会看到任何状态图标,因为就源代码管理而言,它还不存在。在脚本资源中添加一行简单的代码,如下所示:

show_debug_message("Hello World");

如果现在关闭代码编辑器,脚本将保存,修改后的文件图标SCM Modified Icon将显示在资源浏览器中的文件旁边。现在,打开提交窗口,您将看到有四个阶段性更改,因为会自动添加新资源:

Source Control Staged Changes暂存的更改将包括:

您应该键入一条提交消息,然后单击提交按钮,就像我们前面解释的那样。现在,我们返回到我们的脚本并将代码行更改为(例如):

show_debug_message("Hello World, how are you?");

当我们关闭代码编辑器时,脚本旁边将再次显示一个红色图标SCM Modified Icon,但我们已经意识到我们的代码犯了一个错误,我们希望回滚到以前的版本来修复它(显然,您只需打开脚本并轻松修复它,因为示例非常简单,但在大型项目中,这通常不是一个可行的方法)。我们需要做的是恢复我们的更改。

要恢复更改,我们首先需要再次打开提交窗口,因此我们再次转到源代码管理>提交更改。我们更改的文件将再次暂存以供提交,但这不是我们想要的,因此我们单击按钮全部取消暂存将其移出暂存区域。

如果我们现在在我们更改的文件上右键单击RMB Icon,我们将看到一个上下文菜单,其中包含一个选项以还原路径

Source Control Revert Path当您选择此选项时,您将把文件恢复到它们所处的以前状态。

重要! 当您还原时,您将收到一条消息,要求您重新加载或保存当前项目,因为文件检查器检测到磁盘上的更改:
Source Control Warning您必须点击重新加载而不是保存,因为保存将节省内存,而不是重新加载还原的文件。

当您编辑某些内容并想要在没有执行提交的情况下更改时,这一切都很好,但是当您提交了一个或多个更改并希望回滚到前一个提交时,情况又会怎样呢?好吧,让我们再次编辑我们的脚本,如下所示:

show_debug_message("This is a bad idea");

现在,我们像以前一样提交它,以使其处于源代码控制之下。因此,这不是一个好主意,我们想要回滚,这意味着首先我们需要打开源代码管理>查看历史记录窗口。现在,我们将在此窗口中看到所有先前提交的列表,首先是初始提交、脚本的提交,然后是我们已编辑为"Bad idea"的脚本的提交:

Source Control Bad Idea History我们现在有两个选择。我们可以还原整个修订版本-将更改的所有文件还原为选定提交的文件-或者我们可以选择还原路径-这将简单地还原单个文件。让我们从第一个选项开始:

您应该看到该脚本现在有一个红色的状态图标SCM Modified Icon,如果我们打开它,我们将看到以下内容:

Source Control Revert To Revision然后我们可以在项目上做出提交,我们将再次回到我们所处的位置。但是,我们也可以通过执行以下操作来撤消对该文件操作,并重新提交我们的"bad idea":

现在,我们又回到了项目中的错误文件!那么,我们可以利用这个机会只恢复该文件路径,而不是将所有内容恢复到以前的版本。为此,我们需要做以下工作:

我们应该返回到我们的"Hello World"代码,然后我们可以执行新的提交,以使用更正后的文件再次更新源代码管理。