git reflog图?

时间:2019-07-08 15:14:57

标签: git

有什么方法可以显示带有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

1 个答案:

答案 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标签。)