本文概述
在Git中, 术语“还原”用于还原某些更改。 git revert命令用于应用还原操作。这是一个撤消类型命令。但是, 这不是传统的撤消选择。在此过程中, 它不会删除任何数据。相反, 它将创建一个具有相反效果的新更改, 从而撤消指定的提交。通常, git revert是一个提交。
这对于跟踪项目中的错误很有用。如果要从历史记录中删除某些内容, 那么git revert是错误的选择。
此外, 我们可以说git revert记录了一些新更改, 这些更改与以前的提交相反。要撤消更改, 请运行以下命令:
句法:
$ git revert
Git还原选项
Git还原允许进行一些其他操作, 例如编辑, 不编辑, 清除等。让我们简要地了解这些选项:
<commit>:commit选项用于还原提交。要还原提交, 我们需要提交参考ID。 git log命令可以访问它。
$ git revert <commit-ish>
<-edit>:用于在还原提交之前编辑提交消息。这是git revert命令中的默认选项。
$ git revert -e <commit-ish>
-m父编号/-主线父编号:它用于还原合并。通常, 我们无法还原合并, 因为我们不知道应该将合并的哪一侧视为主线。我们可以指定父代号, 并允许还原以相对于指定父代撤消更改。
-n /-不编辑:此选项将不会打开文本编辑器。它将直接还原上一次提交。
$ git revert -n <commit-ish>
–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 <commit reference> -m 1
上面的命令将还原合并操作。在这里, -m 1用作第一个父级的主线。合并提交有多个父母。还原需要其他信息来确定应将合并的父级视为主线。在这种情况下, 将使用参数-m。考虑以下输出:
从上面的输出中, 我们可以看到先前的合并已还原。
评论前必须登录!
注册