简体   繁体   English

git reflog - 分支级摘要

[英]git reflog - branch level summary

git reflog shows how HEAD moved between commits. git reflog显示 HEAD 如何在提交之间移动。

Is there a way to show only branches?有没有办法只显示分支?

(ie show only one line per branch visit) (即每次分支访问只显示一行)

One way to list previous HEAD positions is to use the [HEAD]@{-<n>} construct , where n means nth last position of HEAD, branch-wise.列出先前 HEAD 位置的一种方法是使用[HEAD]@{-<n>} 构造,其中n表示 HEAD 的第 n 个最后位置,分支方式。 But as eftshift0 already mentioned in comments, this is not set in stone information, since branches are moving.但正如eftshift0已经在评论中提到的那样,这并不是一成不变的信息,因为分支机构在移动。 Can be useful in some contexts, though, to understand what happened.不过,在某些情况下可能有助于了解发生了什么。

Here, an alias to illustrate my point:在这里,一个别名来说明我的观点:

$ git config alias.last '!f() { for i in $(seq 1 $1); do git name-rev --name-only --exclude=refs/tags/\* @{-$i}; done; }; f'

which is just a loop to invoke iteratively git name-rev ( doc ) on each, like这只是一个在每个循环上迭代调用git name-rev ( doc ) 的循环,比如

git name-rev @{-1}
git name-rev @{-2}
git name-rev @{-3}
# ...and so on

where --exclude=refs/tags/\* is filtering out tags,其中--exclude=refs/tags/\*过滤掉标签,
and --name-only is here to avoid printing the unnecessary hash并且--name-only在这里是为了避免打印不必要的散列

$ git last 5
master
dev
feature/abc
master
feature/abc

Close enough (includes also tags):足够接近(还包括标签):

 git reflog -5 --pretty='%d' | uniq

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM