在 Git 中,术语还原用于还原某些更改。git revert 命令用于应用还原操作。这是一个撤销类型的命令。但是,它不是传统的撤消替代方案。在此过程中不会删除任何数据;相反,它将创建一个具有相反效果的新更改,从而撤消指定的提交。通常, git revert 是一次提交。
它可用于跟踪项目中的错误。如果您想从历史记录中删除某些内容,那么 git revert 是一个错误的选择。
此外,我们可以说 git revert 记录了一些与之前提交的刚相反的新更改。要撤消更改,请运行以下命令:
句法:
$ git revert
Git 恢复选项:
Git revert 允许一些额外的操作,如编辑、不编辑、清理等。让我们简要了解这些选项:
< commit>:提交选项用于恢复提交。要恢复提交,我们需要提交参考 ID。git log 命令可以访问它。
$ git revert <commit-ish>
<--edit>:用于在还原提交之前编辑提交消息。它是 git revert 命令中的默认选项。
$ git revert -e <commit-ish>
-m parent-number /--mainline parent-number:用于恢复合并。通常,我们无法恢复合并,因为我们不知道合并的哪一侧应该被视为主线。我们可以指定父编号并允许 revert 反转相对于指定父的更改。
-n/--no edit:此选项不会打开文本编辑器。它将直接还原最后一次提交。
$ git revert -n <commit-ish>
--cleanup=
-n/--no-commit:一般revert命令默认提交。no-commit 选项不会自动提交。此外,如果使用此选项,您的索引不必与 HEAD 提交匹配。
no-commit 选项有利于将多个提交效果恢复到连续的索引中。
让我们了解如何恢复以前的提交。
Git 恢复到以前的提交
假设您对项目的newfile2.txt文件进行了更改。稍后,您会提醒您在错误的文件或错误的分支中进行了错误的提交。现在,您想要撤消可以执行的更改。Git 允许您纠正错误。考虑下图:
从上面的输出中可以看出,我对 newfile2.txt 进行了更改。我们可以通过 git revert 命令撤消它。要撤消更改,我们将需要 commit-ish。要检查 commit-ish,请运行以下命令:
$ git log
考虑以下输出:
在上面的输出中,我复制了最近的 commit-ish 以进行还原。现在,我将对这个提交执行恢复操作。它将作为:
$ git revert 099a8b4c8d92f4e4f1ecb5d52e09906747420814
上面的命令将恢复我的最后一次提交。考虑以下输出:
从上面的输出中可以看出,对存储库所做的更改已恢复。
Git 恢复合并
在 Git 中,合并也是一个至少有两个父级的提交。它连接分支和代码以创建一个完整的项目。
Git 中的合并是至少有两个父级的提交。它汇集了多条开发线。在分支中开发功能然后合并到主线的工作流中,合并提交通常有两个父项。
如何恢复合并
通常,恢复合并被认为是一个复杂的过程。如果没有正确完成,它可能会很复杂。我们将在 git revert 命令的帮助下撤消合并操作。虽然其他一些命令如 git reset 可以做到。让我们了解如何恢复合并。考虑下面的例子。
我在测试中对我的文件design2.css进行了一些更改,并将其与test2合并。考虑以下输出:
要恢复合并,我们必须获取其参考编号。要检查提交历史,请运行以下命令:
$ git log
上面的命令将显示提交历史。考虑以下输出:
从上面的输出中,复制您要还原的合并提交并运行以下命令:
$ git revert <commit reference> -m 1
上述命令将恢复合并操作。这里, -m 1 用于第一个父级作为主线。合并提交有多个父级。恢复需要额外的信息来决定合并的哪个父节点应该被视为主线。在这种情况下,使用参数 -m。考虑以下输出:
从上面的输出中,我们可以看到之前的合并已经恢复了。