📜  Git还原

📅  最后修改于: 2020-12-13 15:17:13             🧑  作者: Mango

Git还原

在Git中,术语“还原”用于还原某些更改。 git revert命令用于应用还原操作。这是一个撤消类型命令。但是,这不是传统的撤消选择。在此过程中,它不会删除任何数据。相反,它将创建一个具有相反效果的新更改,从而撤消指定的提交。通常,git revert是一个提交。

这对于跟踪项目中的错误很有用。如果要从历史记录中删除某些内容,则git revert是错误的选择。

而且,我们可以说git revert记录了一些新的更改,这些更改与先前进行的提交相反。要撤消更改,请运行以下命令:

句法:

$ git revert 

Git恢复选项:

Git还原允许进行一些其他操作,例如编辑,不编辑,清除等等。让我们简要地了解这些选项:

commit选项用于还原提交。要还原提交,我们需要提交参考ID。 git log命令可以访问它。

$ git revert 

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

$ git revert -e 

-m父编号/-主线父编号:用于还原合并。通常,我们无法还原合并,因为我们不知道应该将合并的哪一侧视为主线。我们可以指定父代号,并允许还原以相对于指定父代撤消更改。

-n /-不编辑:此选项将不会打开文本编辑器。它将直接还原上一次提交。

$ git revert -n 

–cleanup = <模式>: cleanup选项确定如何从消息中删除空格和注释。

-n /-no-commit:通常,默认情况下,revert命令会提交。 no-commit选项将不会自动提交。此外,如果使用此选项,则索引不必与HEAD提交匹配。

no-commit选项对于将多个提交效果连续还原到索引中很有用。

让我们了解如何还原以前的提交。

Git恢复为先前的提交

假设您对项目的文件newfile2.txt进行了更改。之后,您提醒您在错误的文件或错误的分支中进行了错误的提交。现在,您要撤消所做的更改。 Git允许您纠正错误。考虑下图:

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

$ git log

考虑以下输出:

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

$ git revert 099a8b4c8d92f4e4f1ecb5d52e09906747420814

上面的命令将还原我的上一次提交。考虑以下输出:

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

Git还原合并

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

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

如何还原合并

通常,还原合并被认为是一个复杂的过程。如果操作不正确,可能会很复杂。我们将借助git revert命令撤消合并操作。尽管其他一些命令(如git reset)也可以做到。让我们了解如何还原合并。考虑下面的例子。

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

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

$ git log 

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

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

$ git revert  -m 1

上面的命令将还原合并操作。在这里,-m 1用作第一个父级的主线。合并提交有多个父母。还原需要其他信息来确定应将合并的父级视为主线。在这种情况下,将使用参数-m。考虑以下输出:

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