为什么 GitKraken 图没有按时间顺序显示同一分支的提交?

Why GitKraken graph is not showing commits of same branch in chronological order?

这对我来说很奇怪,我确定我在这里遗漏了一些东西...

此外,GitKraken 是 splitting/showing 将同一分支提交为 2 个不同分支。

举个例子:

注意:数字代表创建提交时的时间顺序。下图中的所有提交都来自 master 分支。提交 7 父项是提交 6.

  1. 为什么 GitKraken 移动了提交 5 和 6?
  2. 为什么 GitKraken 将同一分支的提交拆分为两个不同的 "branches"? (其实只有一个,师父)

在 GitHub 和 gitk 中,我只看到一个分支,所有提交都按时间顺序排列。

使用 gitk --all 进行编辑:(抱歉修剪消息信息)。正如我所说,在 github 中,提交也按时间 "expected" 顺序显示。

我刚才问过 GitKraken 的支持。他们的回应:

The graph behavior you noted below is a known issue that is currently with our team for review. GitKraken only looks at the commit timestamp when drawing the graph, so when those commits are not in chronological order, the result is the orphaned commit seemingly on a separate branch. I'll give that existing item a +1 to note your additional interest in a fix for that issue.

据我所知,如果你的日期在 GitKraken 中看起来是按时间顺序排列的,而你仍然得到这个,这是因为 GitKraken 只显示作者日期,同时使用提交者日期对提交进行排序,这意味着他们中的两个不知何故得到了不同步。

当然,您可以通过交互式变基来解决此问题,但这会使您从问题中得到的任何开发分支都变得扁平化,这绝对不是理想的选择。更好的解决方案似乎是 运行 以下内容:

git filter-branch --env-filter "export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"" -- --all

[摘自 jphx,我只是换掉了引号以使其在更多 shell 中工作]

祝你好运!