小编典典

如何使用 Git 还原

all

如何git revert使用?

然后当有人问如何使用时,git reset人们回复说你应该git revert按照Git 使用 -如何回滚。

在不知不觉中,八位不同的人出现了,他们以自己独特的方式拯救了 OP 的屁股,所有这些都在你的脑海中。

所以让我们试着坚持简短并写一个傻瓜指南git revert

一个场景:你已经提交了两次master,结果很糟糕。你已经推动,其他人也有你不好的改变。

你想撤消它。这不是您可以自己在代码中手动撤消的东西,比如说某个向导或包管理器在整个地方更改了大量的东西——您只是想把它全部恢复原状。

这就是源代码控制的全部意义所在。我敢肯定这很容易。

好的,您将使用git revert,但是如何使用?

而且跑完之后git revert还要做别的吗?您是否必须提交所做的更改还原或还原直接提交到存储库或什么?

显然,您需要再次推动并可能向团队宣布您的球。


阅读 76

收藏
2022-07-28

共1个答案

小编典典

git revert 进行新的提交

git revert只需创建一个与现有提交相反的新提交。

它使文件处于相同的状态,就好像已恢复的提交从未存在一样。例如,考虑以下简单示例:

$ cd /tmp/example
$ git init
Initialized empty Git repository in /tmp/example/.git/
$ echo "Initial text" > README.md
$ git add README.md
$ git commit -m "initial commit"
[master (root-commit) 3f7522e] initial commit
 1 file changed, 1 insertion(+)
 create mode 100644 README.md
$ echo "bad update" > README.md 
$ git commit -am "bad update"
[master a1b9870] bad update
 1 file changed, 1 insertion(+), 1 deletion(-)

在这个例子中,提交历史有两次提交,最后一次是错误的。使用 git 还原:

$ git revert HEAD
[master 1db4eeb] Revert "bad update"
 1 file changed, 1 insertion(+), 1 deletion(-)

日志中将有 3 个提交:

$ git log --oneline
1db4eeb Revert "bad update"
a1b9870 bad update
3f7522e initial commit

因此,发生的事情有一致的历史记录,但文件好像从未发生过错误更新:

cat README.md 
Initial text

要恢复的提交在历史记录中的哪个位置无关紧要(在上面的示例中,最后一次提交被恢复 - 任何提交都可以恢复)。

结束问题

之后你还需要做其他事情吗?

Agit revert只是另一个提交,因此例如推送到远程 以便其他用户可以拉/取/合并更改,您就完成了。

您是否必须提交所做的更改还原或还原直接提交到存储库?

git revert 一个提交 - 假设恢复单个提交是您想要做的,没有额外的步骤。

显然,您需要再次推动并可能向团队宣布。

确实 - 如果遥控器处于不稳定状态 - 与团队的其他成员沟通他们需要拉动以获得修复(恢复提交)将是正确的做法:)。

2022-07-28