git revert命令

在Git中,revert是用来恢复一些修改的。git revert 命令是用来还原一些操作,是一个撤销类型的命令。但它不是一个传统的撤销命令,因为整个过程中不会删除任何数据;相反,它将创建一个具有相反改动的新提交,从而撤销掉指定的提交。本质上看,git revert是一个新的提交。

它在跟踪项目中的bug很有用。如果你想从历史中删除一些东西,那么git revert是一个错误的选择。

此外,我们可以说,git revert 记录了一些新的改动,这些改动与之前的提交刚好相反。要撤销这些改动,请执行下面的命令。

语法:

$ git revert

git revert 选项

Git revert允许附带一些额外的操作,比如编辑、不编辑、清理等等。让我们简单了解一下这些选项。

<commit>: commit选项是用来恢复一个提交的。要恢复一个提交,我们需要commit参考ID。从git log 命令可以找到commit id。

$ git revert <commit-ish>

<--edit>:它用于在还原提交之前,编辑commit信息。是git revert命令的一个默认选项。

$ git revert -e <commit-ish>

-m parent-number /--mainline parent-number:这个选项用来revert merge的结果。一般来说,我们不能revert一个merge,因为我们不知道哪一边的合并应该被认为是主线。我们可以指定父级编号,并允许revert来逆转相对于指定的父级的变化。

-n/--no edit:这个选项不会打开文本编辑器。它将直接恢复上次的提交。

$ git revert -n <commit-id>

--cleanup=<mode>:这个清理选项决定了如何从信息中去除空格和注释。

-n/--no-commit:一般来说,revert命令默认都会提交。no-commit选项将不会自动提交。此外,如果使用这个选项,你的索引不必与HEAD的提交相匹配。no-commit选项有利于连续恢复对你的索引有影响的多个提交。

让我们了解一下如何revert以前的提交。

Git revert前面的提交

假设你对项目中的一个文件(如newfile2.txt)进行了修改。后来,你发现自己在错误的文件或分支中做了错误的提交。现在,你想撤销这些改动,你可以这么做。

Git允许你纠正错误。请看下面的图片。

Git Revert

从上面的输出可以看出,我对newfile2.txt进行了修改。我们可以通过git revert命令撤销它。要撤销这些改动,我们需要commit-id。要检查commit-id,请运行下面的命令。

$ git log

输出:

Git Revert

在上面的输出中,我复制了最近的一次提交来进行还原。现在,我将对这个提交进行还原操作。它的操作方式是:

$ git revert 099a8b4c8d92f4e4f1ecb5d52e09906747420814

上述命令将恢复我的最后一次提交。请看下面的输出:

Git Revert

从上面的输出可以看出,在版本库上做的修改已经被还原了。

Git Revert Merge

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

如何Revert一个Merge

通常情况下,revert一个合并被认为是一个复杂的过程。如果做得不对,可能会很复杂。我们将在git revert命令的帮助下撤销一个merge操作。尽管其他一些命令(如git reset)也可以做到这一点。让我们了解一下如何撤销合并。

请看下面的例子:

我在测试中对我的文件design2.css做了一些修改,并将其与test2合并。

输出:

Git Revert

要revert一个merge,我们必须得到它的commit-id。

要检查提交历史,请运行以下命令。

$ git log

上述命令将显示提交历史。

请看下面的输出:

Git Revert

从上面的输出中,复制你要恢复的合并提交,并运行以下命令。

$ git revert <commit reference> -m 1

上述命令将revert合并的操作。这里,-m 1被用来指定作为主线的第一个父本。合并提交有多个父本。revert需要额外的信息来决定哪一个合并的父本应被视为主线。在这种情况下,可以使用参数-m。

请看下面的输出:

Git Revert

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程