2016-05-17 68 views
1

这里是我的gitk提交图(我使用这里正确的说法,提交图形?) enter image description here为何gitk和sourcetree提交图形看起来不同,对同一存储库

,这里是我的sourcetree提交图形的同一个版本库 enter image description here

我无法理解为什么它们看起来不同? gitk图不应该是一条直线?这里有什么需要解决的吗?

+0

本地和远程分支机构不必是相同的,特别是如果你使用的是基于合并的工作流程。保证的是,如果你从远程访问,那么本地和远程分支将在功能上相同(即源文件将全部同步)。 –

+0

我知道本地和远程不必相同。但是我想知道的是为什么图形在sourcetree中看起来更干净?它在第三次提交时显示一个干净的分支,并在最后一次提交中很好地返回。另一方面,gitk提交图看起来很诡异。我一直认为提交图应该是一系列直线,每个都与一个人的承诺有关。这里看起来某处出了问题。做到了?我不知道。 – user20358

+0

'我不能说'...“我看不懂”会是一个更好的描述。这就是为什么许多组织选择使用重新绑定而不是合并,因为它保持了历史的可读性。如果不知道在本地和远程站点上发生了多少次合并,并且您自己甚至不知道这一点,我无法回答您的问题。 –

回答

3

我不知道直线是什么。

根据维基百科,曲线图是:

在数学上,并且更具体地在图论中,曲线是一组,其中一些对对象被 通过链路连接的对象的 表示。

图定义中没有任何内容表示链接的曲线或其方向有任何意义。

只有节点和节点之间的连接作出图形。

所以,你比较的是两个不同的图形表示的在同一张图

当你想想看,这是非常不可能的,两个不同的人有两种不同的理念,并在两个不同的时间将实现准确的图形相同的渲染。
在这两种情况下,曲线图的呈现取决于gitksourcetree希望如何呈现的信息的其余部分以及它们如何决定订购提交(他们需要平坦化图形来显示它,并因而决定任意的顺序对提交,不一定是相同的)。

+0

这些图是在同一时间从同一个存储库中获取的。我想我可能需要了解如何读取gitk对提交图的表示。 SourceTree的我很明白,因为它似乎模仿我刚做的事情;这是从主分支〜分支〜做了几个提交〜然后合并回主。谈到gitk,提交的顺序似乎有所不同。那么我相信哪一个更准确?或者,如果在提交'B'之前提交'A'并且另一个提交'B'并稍后提交'A',它甚至会影响吗? – user20358

+1

正如我所说的,提交的顺序没有意义。平展图形时,不可能保证提交按时间顺序显示。如果你只关注图表,从下到上:你有一个提交。然后是第二个。然后是第三个。从3日开始,有两个分支(左侧和右侧没有意义)。在每个分支上,都有一个提交。这两个分支与第六次提交合并。这就是用图形描述你的图表,它适用于SourceTree和Gitk图形。其他一切都没有意义。 –

+1

就是这样,当展平时,sourcetree和gitk对于第4次和第5次提交的顺序不同,但它并不意味着什么。 'git log'也会有自己的任意排序。 –