如何撤销最近的n次提交?

9

我正在处理一棵具有以下提交的树:

aaaaaaa Implement function A
bbbbbbb Implement function B
ccccccc Implement function C

我想要取消前面两次提交,也就是把这些更改重新放回到暂存区。我了解到 git reset --soft HEAD^ 可以取消最新的一次提交。但我想知道如何一次取消多次提交。我不确定使用 git reset --soft HEAD~10 是取消倒数第10次提交还是取消最新的10次提交。


git reset --soft HEAD~~git reset --soft HEAD^^git reset --soft HEAD~2 - Whymarrh
参见:https://git-scm.com/book/zh/v2/Git-Tools-Revision-Selection - Whymarrh
@Whymarrh,StackOverflow或其他任何地方的答案都无法回答最近n个提交的问题。您可以将其编写为答案而不是评论。谢谢。 - SloppyJoe
еҸҜиғҪжҳҜGitдёӯзҡ„commit-ishе’Ңtree-ishжҳҜд»Җд№Ҳпјҹзҡ„йҮҚеӨҚй—®йўҳгҖӮ - Whymarrh
哪个更近:aaaaaa 还是 cccccc? - alex
显示剩余4条评论
1个回答

12

首先,确认你想要更改的提交并没有被推送到公共仓库中。(从描述听起来,它们尚未被公开)

使用 git reset --soft HEAD^ 是正确的做法。

HEAD^ 指的是HEAD前面一个提交。 HEAD~4 指的是HEAD前面四个提交,总共回退了五个提交。

这段内容摘自GitHub博客


此外,赞赏您了解暂存区和工作目录之间的区别,以及 reset --soft--mixed--hard 之间的差异。 - Briana Swift

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接