考虑这种情况:
然后发现他在提交#n + 2时引入了一个缺陷。
怎么可以开发。回滚他的最后2次提交并继续开发提交 #n + 1 ?
尝试了git reset --hard HEAD~2
*,但它又回到了开发者A的提交 #n 。
答案 0 :(得分:93)
它应该回到n + 1提交。你可能也有合并提交。您还可以执行git reset --hard <sha1_of_where_you_want_to_be>
警告!
--hard
表示您当前拥有的任何未提交的更改 将被永久地扔掉。
答案 1 :(得分:4)
我建议使用这样的东西:
git reset --soft <commit_hash>
除非您希望它删除到那时为止的所有更改,否则在这种情况下使用 --hard 而不是 --soft,它将使您到达树中所需的点,而不会删除在其中所做的所有更改提交。
在阅读时,我尝试使用 --HARD,但不幸的是,它删除了我到目前为止的所有更改。因此,请注意是否要删除它们。
所以,如果你像我一样倒霉,试试这个! :git revert <commit_hash>