28

如何使用 GIVEN SHA 恢复提交?我只想删除给定 SHA 的更改?我想保留在给 SHA 之前和之后所做的所有提交。我只想删除该指定 SHA 的更改。

我已阅读通过 Git 中的 SHA 哈希恢复提交?,我的理解是重置在我想要恢复的 SHA 之后所做的所有提交。这不是我想要的方式。

4

3 回答 3

33

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

如果您尚未与其他任何人共享您的更改,则可以使用git rebase. 这个 SO post中有详细信息。

于 2012-06-29T21:09:13.190 回答
4

git revert <commit>将尝试还原单个提交。

它不会更改任何其他提交。你可能会被git reset哪个完全不同的东西弄糊涂了。

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

于 2012-06-29T21:05:58.807 回答
2

一个可以使用

git revert <commit hash> --no-commit 

如果他们想在再次提交之前调整提交还原产生的更改。有关更多信息,请查看此处

于 2020-05-28T15:14:46.087 回答