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

标签 git git-revert

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

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

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

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

最佳答案

我强烈反对建议您使用 git revert 的其他答案。这实际上会真正恢复由提交 A 引入的更改并自行生成提交。

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

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)

许多工具可以让您直接看到两个引用文献之间的区别,而无需检查。在命令行上,这可以通过 git diff 来完成。 :

git diff $HASH_OF_COMMIT_A..$HASH_OF_COMMIT_B

关于git - 如何在不删除最新提交的情况下恢复到之前的提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67774342/

相关文章:

java - 使用 JGIT 进行浅克隆

git - 如何在 Gitblit 中创建父组?

git - 如何将新问题附加到 github 上的现有 pull 请求?

git - 如何将 HEAD 移回以前的位置? (分离头)和撤消提交

git - 如何将 "reopen"一个古老的提交到最近提交中恢复的工作树中?

git - 添加一个跟踪 master 的 git 子模块

git - 如何为标记的提交创建一个单独的分支?

git - 如何 "unrevert"以前还原的提交?

Git 还原多个提交

git - 如何使用 'git reset --hard HEAD' 恢复到之前的提交?