有什么方法可以显示带有mybranch@{N}
之类的reflog引用的git log图?重新设置基准以在图形中查看分支的先前版本和当前版本之后,这将很有用。基本上,我想要的是git log --graph --walk-reflogs mybranch
,但这给了我一个错误fatal: cannot combine --walk-reflogs with history-limiting options
。
我可以很接近git log --graph --reflog mybranch
,但是不会显示诸如mybranch@{1}
这样的引用日志引用。
也许这是一个限制,因为您不能在同一命令中遍历祖先和reflog?不过,似乎应该有一种方法可以遍历reflog 5个条目左右,并将带有标签的引用提供给git log --graph
。
答案 0 :(得分:3)
也许这是一个限制,因为您不能在同一命令中遍历祖先和reflog?
完全正确。
这里的主要问题是,Git可以查找%d用于普通修饰,%gD
用于reflog选择符修饰)来提交>装饰器。为了允许%d
装饰器起作用,Git 始终读取所有分支和标记以及其他引用名称。但是,要使%gD
工作,Git必须读取引用日志条目,除非您使用--walk-reflogs
(或简称为-g
),否则它根本不会读取引用日志条目。一旦您使用-g
,便会读取reflog,但停止浏览提交图。
如果%gD
出现在格式化指令中以及何时出现,则Git无法读取所有刷新日志没有根本原因,因此它可以添加这些装饰器,但是今天还没有。
如果并且当您解决第一个问题时,会发生一个单独的但同样重要的问题:--graph
无法与--no-walk
结合使用,并且--walk-reflogs
暗示--no-walk
(它们是独立的内部漫游功能,并且生成图形的代码在很大程度上取决于使用历史漫游器,而不是reflog漫游器。
(使用当前Git最好的办法是解析git log
的输出,同时还自己读取所有reflog值。然后可以编写自己的代码以添加reflog标签。)