【问题标题】:How to check what git rebase had changed?如何检查 git rebase 发生了什么变化?
【发布时间】:2020-09-29 16:52:45
【问题描述】:

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

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

在尝试这样做时,我在错误的分支(即master)中重新设置了基准,这在重新设置文件中向我显示了一些不是我的目标的提交。因此,我只是退出了编辑器,它说“Rebase done successfully”。

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

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

git diff origin/master...master

这并没有带来任何东西。这是否意味着主分支肯定不受变基的影响?

【问题讨论】:

  • 您的问题有点宽泛,但实际上在 rebase 期间您已经可以了解正在发生的事情。你到底想知道什么?

标签: git rebase git-history-rewrite


【解决方案1】:

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 ...)

【讨论】:

  • 这就是我要找的。非常感谢。您能否更详细地解释最后一个命令?我运行它,它向我展示了 master 分支中的所有提交。所以我不知道它是否应该以不同的颜色或通过明确区分来显示本地和远程分支之间的差异?
猜你喜欢
  • 1970-01-01
  • 2012-06-22
  • 2016-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
相关资源
最近更新 更多