查找git reflog

7

遇到新问题时,我会创建一个新的分支。这些分支的名称以issu开头。在与master合并后,这些分支将被删除。我想要获取所有这些分支的列表。我可以使用git reflog命令获得它。

>git reflog
55e8b45 (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: merge issu4-HasScript-and-HasFormat-checkbox-toggle: Fast-forward
7caf2c6 HEAD@{1}: checkout: moving from issu4-HasScript-and-HasFormat-checkbox-toggle to master
55e8b45 (HEAD -> master, origin/master, origin/HEAD) HEAD@{2}: commit (amend): Column validation including Has-Script and Has-Format
490a29a HEAD@{3}: commit: Column validatio inclnsuding Has Script and Has Format
7caf2c6 HEAD@{4}: checkout: moving from master to issu4-HasScript-and-HasFormat-checkbox-toggle
7caf2c6 HEAD@{5}: merge issu3-make-SFTPFingerprint-required: Fast-forward
fbad7cd HEAD@{6}: checkout: moving from issu3-make-SFTPFingerprint-required to master
...

有没有办法过滤这些条目以获取所有以issu开头的合并请求。

我试图获取所有已合并到主分支且以issu开头的已删除分支。其他可以实现此功能的解决方案也可以。

我进行了大量搜索,但没有找到解决方案。

更新:

我正在使用Windows。我目前拥有的解决方案是

git reflog | findstr /c:"merge issu"

有没有git本身的解决方案?

2
你尝试过使用 git reflog | grep issu 吗? - Dave G
@DaveG 我在一台Windows机器上。 - dCoder
请返回Saurabh的答案。 - Dave G
2个回答

22
您可以使用以下命令: git reflog --grep-reflog=<pattern> 在您的情况下,应该是这样的: git reflog --grep-reflog="merge issu" 链接

1
从 git reflog 文档中可以发现有一个有趣的注释:“show”子命令(也是默认的,在没有任何子命令的情况下)会显示命令行提供的引用(或者默认情况下的 HEAD)的日志。reflog 包含所有最近的操作,此外 HEAD reflog 还记录了分支转换情况。git reflog show 是 git log -g --abbrev-commit --pretty=oneline 的别名;更多信息请参见 git-log[1]。 这意味着,任何适用于 git log 的选项都可以使用。从 reflog 的帮助页面上并不能立刻看出这一点。 - Dave G

0
如果你使用的是Linux系统,那么grep命令就是这个任务的工具,同时还有管道符号可以让你将一个命令的输出作为另一个命令的输入。在这种情况下,你可以执行以下操作:
git reflog | grep issu

如需更多信息,请键入man grep以获取grep文档。

注意:在所有Windows版本中,您可以使用Git Bash来执行此操作。在Windows 10中,您可以使用Linux子系统。


我正在使用Windows。 - dCoder
1
@PyMan已经尝试过findstr了吗? - Romain Valeri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接