git:撤消上次提交并返回到当前版本

git:撤消上次提交并返回到当前版本,git,Git,我的狗检查了我项目中的一个错误,我后来发现了。现在我想回到一个承诺,说这应该是一个新的基础。问题在红线的范围内。正确的版本是当前选择的提交。如何删除最上面的和红色提交?我看不到这里的图像,但我猜您不希望更改当前分支历史记录中的修订,对吗?如果你真的希望从分支的历史中移除这些变化,并从工作树中移除(例如,你的狗在你的项目中添加了一个你不想要的线……相当熟练的你的狗……应该考虑和他一起去看马戏),那么你就应该把它从分支的历史中移除。让我们假设您的分支称为test,并且您要删除的修订是testtip之


我的狗检查了我项目中的一个错误,我后来发现了。现在我想回到一个承诺,说这应该是一个新的基础。问题在红线的范围内。正确的版本是当前选择的提交。如何删除最上面的和红色提交?

我看不到这里的图像,但我猜您不希望更改当前分支历史记录中的修订,对吗?如果你真的希望从分支的历史中移除这些变化,并从工作树中移除(例如,你的狗在你的项目中添加了一个你不想要的线……相当熟练的你的狗……应该考虑和他一起去看马戏),那么你就应该把它从分支的历史中移除。让我们假设您的分支称为test,并且您要删除的修订是testtip之前的3个修订

git checkout test~4 # go back to the revision _before_ the one you want to delete
git cherry-pick test~3..test # cherry pick the revisions after the one you want to delete
git branch -f test # move test pointer
git checkout test # checkout test

此时,您的狗所做的应该从分支中删除。

好吧,您最好
还原提交的内容(而不是
--force
推送新的历史记录)和您的狗对该存储库的访问权限。如果不需要保留已损坏的修订,为什么要还原?至少我不会保留一个我一开始就不想在历史上修改的版本。