如何检查 git rebase 发生了什么变化?

How to check what git rebase had changed?

有没有办法检查 git rebase 在执行变基并退出变基模式后发生了什么变化?

我使用 rebase 来更改以前提交的作者姓名。

在尝试这样做时,我在错误的分支(即 master)中进行了重新定位,这在我看来在重新设置文件中显示了一些不是我的目标的提交。因此,我只是退出了编辑器,它说 "Rebase done successfully".

最后,我切换到我的本地分支(即 vIO),我可以更改作者姓名,但我想检查我的其他变基试验是否不影响历史记录。顺便说一句,我的本地分支 (vIO) 尚未推送到远程。

我尝试通过以下方式比较本地主机和远程主机:

git diff origin/master...master

这没有带来任何东西。这是否意味着 master 分支没有受到 rebase 的影响?

git 为每个单独的分支保留一个日志,您可以通过 git reflog 命令访问它:

  • git reflog master 将向您展示本地 master 分支的演变,
  • git reflog vIO 本地 vIO 分支的演变。

在此 reflog 中,rebase 应用的操作将显示一条消息:

rebase (finish): refs/heads/branchname onto eacf32bb...

git diff origin/master...master 命令告诉你 master 上没有新内容,这是一个很好的指示。

如果您想 100% 确定 master 没有移动,请查看带有 git log 的提交列表:

git log --graph --oneline origin/master master

将允许您查看两个分支是否有任何不同的提交:

  • 如果标签 masterorigin/master 出现在同一个提交上,则两个分支是同步的;
  • 否则,请查看图表以了解应采取的措施(pullpushmergerebase ...)