代码之家  ›  专栏  ›  技术社区  ›  unrelativity

删除git中的分支会导致gitk失控

  •  4
  • unrelativity  · 技术社区  · 16 年前

    我决定从我的(个人项目)存储库中删除几个合并到中的分支 master 确认一下,剩下的树枝真的没必要。

    然而,gitk对我的存储库历史的可视化结果是完全搞砸了。

    http://i48.tinypic.com/90r512.png

    来自提交的分支不知从何处出现,最终返回到前面的其他提交。合并并没有在所有的点上发生,我只有大约5个额外的分支。

    这正常吗?这有什么解决办法吗?

    3 回复  |  直到 7 年前
        1
  •  4
  •   Brian Campbell Dennis Williamson    16 年前

    您是否尝试重新加载显示器?有时候gitk会有点困惑,但是退出并重新启动它,或者重新加载( 文件 重新加载 或 - )可以帮助它以更友好的方式重新描绘历史。

    编辑

    看起来您在master上做了一些开发,同时还处理了一些分支。当你这么做的时候,你合并了 master 在那些侧枝上放了好几次。 gitk 在列表中显示提交,因此需要提交的线性顺序。无论何时,只要有分支历史记录,就有几种可能的线性排序,您可以将该历史记录放入其中。例如,以下结构:

           /-- c -- e --\
    a -- b               g -- h
           \-- d -- f --/
    

    1. a、 b,c,d,e,f,g,h
    2. a、 b,c,d,f,e,g,h
    3. a、 b,d,c,e,f,g,h
    4. a、 b,d,f,c,e,g,h

    吉特 使用拓扑排序,尝试将每个分支上的提交组合在一起,以便您可以看到每个分支的提交的逻辑进程,而不是根据发生的时间分散在分支的每一侧的提交。因此,例如,它可能会按顺序(1)显示它们:

    a -- b -- c -- e ------------ g -- h
           \----------- d -- f --/
    

    吉特 主人 首先显示的是,然后是侧分支上的提交,但是 主人 分支变成了长长的连接,这些连接堆积起来,让历史看起来很混乱(请注意,Git实际上并不存储来自哪个分支的提交,但它对提交进行排序的方式似乎将来自每个分支的提交保持在一起)。

    据我所知,处理此问题的最简单方法就是在中显示提交 吉特 看法 &燃气轮机; ,并检查 选项现在你应该看到你的历史被更理智地展示了。要直接启动到此视图,可以传递 --date-order 选择进入 吉特

        2
  •  1
  •   hasen    16 年前

    我不知道您的历史记录是什么样子,但要记住:删除合并的分支只会删除名称(ref),而不会删除提交,也不会删除历史记录的任何部分。

    因此,可视化历史的工具仍将显示过去发生的所有分支。

        3
  •  0
  •   MBO    16 年前

    gitk --all git log --graph 可以帮助您了解这不是gitk的问题。