Mosty Mostacho Asked: 2020-12-02 10:28:01 +0800 CST 2020-12-02 10:28:01 +0800 CST 2020-12-02 10:28:01 +0800 CST 如何撤消 Git 中的最后一次提交? 772 我做了一个提交,并在我注意到我提交了我不想推送到远程的更改后立即。 有没有办法通过将这些更改保留在我的工作副本中以正确重新提交它们来撤消相同的操作? git 4 Answers Voted Best Answer Jcl 2020-12-02T10:36:17+08:002020-12-02T10:36:17+08:00 如果要保留更改: git reset [--mixed] HEAD~1 如果您也不想加载提交(只需将头部移动到前一个): git reset --soft HEAD~1 如果您不想保留它们(并恢复到上一次提交的状态,有效地完全销毁最后一次提交,就好像它从未存在过一样): git reset --hard HEAD~1 Carlos Muñoz 2020-12-02T10:35:52+08:002020-12-02T10:35:52+08:00 命令是git reset <commit> 要专门撤消您可以使用的最后一次提交HEAD~1 例如,要返回上一个提交,您可以使用 sgte 命令: git reset HEAD~1 该参数--mixed允许将更改保留在工作树中,以便以后可以修改它们,但是,由于它是默认模式,因此没有必要。 在这种情况下,在我看来这是最合适的选项,因为您想要更正提交,因此您需要恢复索引以更正更改。 一些可选参数是: --soft它不会修改工作树或索引。只需将 HEAD 更改为指示的提交。 --mixed恢复索引但不恢复工作树,以便更改随时可以修改并可能再次提交。这是默认选项。 --hard还原索引和工作树,使更改完全丢失。 您可以在git-reset 文档中查看完整的语法 eugenio 2020-12-02T11:00:31+08:002020-12-02T11:00:31+08:00 $ git reset --soft HEAD~ o $ git reset --soft HEAD~1 #1 // Cambios necesarios // #2 $ git add ... #3 $ git commit ... #4 您只需进行软重置,将更改保留在本地,但撤消提交,然后执行您想要的任何操作并按照您第一次想要的方式再次提交。 Jorgesys 2020-12-02T10:39:21+08:002020-12-02T10:39:21+08:00 如何撤消 Git 中的最后一次提交? 这是正确的方法: $ git reset --soft HEAD~ 非常重要,正如另一位用户提到的,当您需要保留更改时,此选项适用。
如果要保留更改:
如果您也不想加载提交(只需将头部移动到前一个):
如果您不想保留它们(并恢复到上一次提交的状态,有效地完全销毁最后一次提交,就好像它从未存在过一样):
命令是
git reset <commit>
要专门撤消您可以使用的最后一次提交
HEAD~1
例如,要返回上一个提交,您可以使用 sgte 命令:
该参数
--mixed
允许将更改保留在工作树中,以便以后可以修改它们,但是,由于它是默认模式,因此没有必要。在这种情况下,在我看来这是最合适的选项,因为您想要更正提交,因此您需要恢复索引以更正更改。
一些可选参数是:
--soft
它不会修改工作树或索引。只需将 HEAD 更改为指示的提交。--mixed
恢复索引但不恢复工作树,以便更改随时可以修改并可能再次提交。这是默认选项。--hard
还原索引和工作树,使更改完全丢失。您可以在git-reset 文档中查看完整的语法
您只需进行软重置,将更改保留在本地,但撤消提交,然后执行您想要的任何操作并按照您第一次想要的方式再次提交。
这是正确的方法:
非常重要,正如另一位用户提到的,当您需要保留更改时,此选项适用。