如何恢复在 Git 上完成的最后 2 次提交

Ram*_*man 5 git git-revert

我在这里遇到的情况是,另一个合作者完成了 2 次提交,这似乎是错误的文件。我是存储库的所有者,并希望恢复由其他合作者完成的 2 次提交。从我的终端,我尝试了以下操作。

git log -2它只是说我所做的最后 2 次提交。我想知道如何重置最后 2 个提交并将 HEAD 更改为那些 2 个之前的提交。

Tim*_*sen 13

使用git revert

git revert A^..B
Run Code Online (Sandbox Code Playgroud)

其中A是要还原的两个提交中第一个提交B的哈希值,是第二个提交的哈希值。即使自两次提交以来在远程分支上进行了其他提交,这种方法也将起作用。

如果此分支未与任何人共享,您也可以使用

git reset --hard HEAD~2
Run Code Online (Sandbox Code Playgroud)

但要注意git reset --hard在公共共享的分支上使用。对于共享分支,git revert如上所述使用要安全得多。

  • “A” 是较旧的提交,“B” 是较新的提交,对吗?只是确保我收到订单=) (5认同)
  • A^ 应该替换为提交哈希? (2认同)

Sar*_*ana 6

只需将其重置为两次提交之前的提交哈希即可:

git reset <commit-hash>
Run Code Online (Sandbox Code Playgroud)

这将删除之后的提交commit-hash并将更改带到您的工作区。如果您不想进行更改,可以传递一个--hard选项。


Zak*_*kir 6

试试这个,但要确定你想要做什么

git reset --hard HEAD~2
Run Code Online (Sandbox Code Playgroud)

git reset --hard是不可逆转的变化。也可能是学习的好时机git reset --hard/--soft/ --mixed

在此处输入图片说明

我也建议通过这个