我正在将 svn 存储库移植到 git (使用 svn2githttps://www.negativetwenty.net/redmine/projects/show/svn2git)并且由于 svn 不跟踪合并,我需要手动编辑 .git/info/grafts 。为此,我启动 gitk,在提交消息中搜索术语“合并”,验证合并提交是否具有正确的祖先并相应地填充 .git/info/grafts。
我遇到的问题是 gitk 似乎与“master”分支混淆了。它经常显示 master 从一个分支“分叉”并合并到一个分支后记中,而实际上恰恰相反。
为什么它无法理解master应该尽可能“线性”并且应该从它分叉出分支,而不是相反?是 gitk 问题还是 git repo 的历史不完整?似乎“git log --pretty=oneline --graph”能够显示正确的行为,所以我认为这可能是 gitk 问题。
我也尝试过 giggle 和 qgit,但都有各自的问题。我发现 giggle 的树很难理解(例如,合并是水平的,而在 qgit 和 gitk 中它们是倾斜的......)并且 qgit 似乎没有显示一些提交(在 svn 中创建分支的提交在两者中都显示为 git 提交) “git log --pretty=oneline --graph”和 gitk,但不在 qgit 或 giggle 中)。
请注意,我在测试中使用“gitk --all”。
所以我的问题是:
-如何强制 gitk 显示 master 尽可能线性?理想情况下,“左对齐”,分支是从中分叉出来的,而不是相反。 “git log --pretty=oneline --graph” 似乎是以正确的方式做的,但是 gitk 呢?
Thanks!
编辑:屏幕截图链接已失效。之前说过:
我已经上传了不同工具的屏幕截图:
git 日志、gitk、咯咯笑、qgit
查看“git log”如何显示分支正在合并到主干中,而gitk
显示主干正在合并到分支中。 Giggle 和 qgit 显示右侧
合并,但他们经常删除一些提交(创建分支),所以它是
手动编辑 .git/info/grafts 文件真的很难。
查看“git log”如何显示正在合并到主干的分支,而 gitk 显示正在合并到分支的主干。
这是因为 gitk 可以自由地对父级重新排序——就像许多其他工具一样。最左边的父级并不总是第一个父级。通常,工具会将父母放在有空间的地方。它最终提供了更丰富的视图。比较:
-
http://i53.tinypic.com/29lfyti.png- git log 使“master”缠绕在“nucrypt2”分支上,以便第 X 个(X>=2)父级始终位于合并的右侧
-
http://i52.tinypic.com/sc7r5v.png- git-forest,默认
-
http://i51.tinypic.com/28iatjd.png- 相同,禁用合并快捷方式搜索
我发现 git-log 的图表不太符合人体工程学——它需要更多的空行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)