如何git使用SHA恢复提交


How to git revert a commit using a SHA

如何使用给定的sha恢复提交?我只想删除给定sha的更改?我要保留在给予sha之前和之后所做的所有承诺。我只想删除指定sha的更改。

我读过Git中的sha哈希返回到commit吗?,我的理解是重置在sha之后我想要恢复的所有提交。这不是我想要的。


您可以使用git revert 尝试恢复提交所做的更改。这不会从历史记录中删除提交,只需进行更改以将其作为新提交撤消即可。换句话说,您将拥有历史上第一个提交,并且在分支的头部有一个额外的提交,这是原始提交的有效反向。

如果您还没有与其他人共享您的更改,那么可以使用git rebase从历史中完全删除原始的违规行为。这篇文章有一些细节。


git revert 将尝试恢复单个提交。

它不会改变任何其他承诺。你可能会被git reset搞糊涂,它的作用完全不同。

更多信息:https://www.kernel.org/pub/software/scm/git/docs/git-revert.html