如何还原在 Git 上完成的最后 2 次提交
How to revert the last 2 commits done on Git
我这里有一个情况,另一个合作者完成了 2 次提交,这似乎是错误的文件。我是存储库的所有者,我想还原其他合作者完成的那 2 次提交。在我的终端上,我尝试了以下操作。
git log -2
它只是说我所做的最后 2 次提交。我想知道如何重置最后 2 次提交并将 HEAD 更改为 2 之前的提交。
只需将其重置为 2 次提交之前的提交哈希:
git reset <commit-hash>
这将删除 commit-hash
之后的提交并将更改带到您的工作区。如果您不想更改,可以传递 --hard
选项。
使用git revert
:
git revert A^..B
其中 A
是要还原的两个提交中第一个的哈希,B
是第二个提交的哈希。即使自两次提交以来在远程分支上进行了其他提交,此方法也将起作用。
如果此分支未与任何人共享,您也可以使用
git reset --hard HEAD~2
但要注意在公开共享的分支上使用 git reset --hard
。对于共享分支,如上所述使用 git revert
更安全。
试试这个,但要确定你想做什么
git reset --hard HEAD~2
git reset --hard
是不可逆的变化。也可能是了解 git reset --hard/--soft/ --mixed
的好时机
我还建议通过 this
我这里有一个情况,另一个合作者完成了 2 次提交,这似乎是错误的文件。我是存储库的所有者,我想还原其他合作者完成的那 2 次提交。在我的终端上,我尝试了以下操作。
git log -2
它只是说我所做的最后 2 次提交。我想知道如何重置最后 2 次提交并将 HEAD 更改为 2 之前的提交。
只需将其重置为 2 次提交之前的提交哈希:
git reset <commit-hash>
这将删除 commit-hash
之后的提交并将更改带到您的工作区。如果您不想更改,可以传递 --hard
选项。
使用git revert
:
git revert A^..B
其中 A
是要还原的两个提交中第一个的哈希,B
是第二个提交的哈希。即使自两次提交以来在远程分支上进行了其他提交,此方法也将起作用。
如果此分支未与任何人共享,您也可以使用
git reset --hard HEAD~2
但要注意在公开共享的分支上使用 git reset --hard
。对于共享分支,如上所述使用 git revert
更安全。
试试这个,但要确定你想做什么
git reset --hard HEAD~2
git reset --hard
是不可逆的变化。也可能是了解 git reset --hard/--soft/ --mixed
我还建议通过 this