如何在不删除最新提交的情况下恢复到之前的提交?

Ste*_*eve 1 git git-revert

假设我有 2 个提交,我已经推送到我的远程分支。

  • 提交 A(2021 年 5 月 31 日)
  • 提交 B(2021 年 5 月 30 日)

如何在不删除提交 A 的情况下恢复到提交 B?我只想比较这两个提交之间的结果。

注意:不需要代码比较。我只想比较 Commit A 和 Commit B 的输出

Mat*_*att 7

我强烈不同意其他建议您使用git revert. 这实际上会真正还原由提交 A引入的更改并自行生成提交。

由于您想查看某个时间点的状态,您可以直接签出Commit B以便您可以检查内容。之后签出原始分支以返回到最新的提交。

git checkout $HASH_OF_COMMIT_B   # now you are in a detached head state at commit B
git checkout $BRANCH             # now you are back at the tip of the branch (commit A)
Run Code Online (Sandbox Code Playgroud)

很多工具可以让您直接查看两个引用之间的差异,而无需结帐。在命令行上,这可以通过以下方式完成git diff

git diff $HASH_OF_COMMIT_A..$HASH_OF_COMMIT_B
Run Code Online (Sandbox Code Playgroud)