程序员社区

Git系列教程 --- 29、Git Revert详解

在 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 允许您纠正错误。考虑下图:

file

从上面的输出中可以看出,我对 newfile2.txt 进行了更改。我们可以通过 git revert 命令撤消它。要撤消更改,我们将需要 commit-ish。要检查 commit-ish,请运行以下命令:

$ git log  

考虑以下输出:

file

在上面的输出中,我复制了最近的 commit-ish 以进行还原。现在,我将对这个提交执行恢复操作。它将作为:

$ git revert 099a8b4c8d92f4e4f1ecb5d52e09906747420814  

上面的命令将恢复我的最后一次提交。考虑以下输出:

file

从上面的输出中可以看出,对存储库所做的更改已恢复。

Git 恢复合并

在 Git 中,合并也是一个至少有两个父级的提交。它连接分支和代码以创建一个完整的项目。

Git 中的合并是至少有两个父级的提交。它汇集了多条开发线。在分支中开发功能然后合并到主线的工作流中,合并提交通常有两个父项。

如何恢复合并

通常,恢复合并被认为是一个复杂的过程。如果没有正确完成,它可能会很复杂。我们将在 git revert 命令的帮助下撤消合并操作。虽然其他一些命令如 git reset 可以做到。让我们了解如何恢复合并。考虑下面的例子。

我在测试中对我的文件design2.css进行了一些更改,并将其与test2合并。考虑以下输出:

file

要恢复合并,我们必须获取其参考编号。要检查提交历史,请运行以下命令:

$ git log   

上面的命令将显示提交历史。考虑以下输出:

file

从上面的输出中,复制您要还原的合并提交并运行以下命令:

$ git revert <commit reference> -m 1  

上述命令将恢复合并操作。这里, -m 1 用于第一个父级作为主线。合并提交有多个父级。恢复需要额外的信息来决定合并的哪个父节点应该被视为主线。在这种情况下,使用参数 -m。考虑以下输出:

file

从上面的输出中,我们可以看到之前的合并已经恢复了。

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Git系列教程 --- 29、Git Revert详解

一个分享Java & Python知识的社区