Git log --branches 使用 glob 模式的多个分支

Git log --branches with multiple branches using glob patterns

我无法让 git log --branches 做我想做的事。我想在单个图中输出与这些 glob 模式匹配的提交:

我尝试了这些不起作用的方法(它们显示来自当前分支的提交):

这可能吗?似乎 glob 模式没有 or 语法。

我为什么要这样做

我正在使用 Git Extensions as my visual git client and its branch filter box appends its content to a (single) --branches= option 作为它的 git log 命令。

我开了一个Git Extensions feature request支持这个

您可以多次重复--branches选项:

git log --branches="users/bertgp/*" --branches="/users/sessid/*"

在bash中可以压缩,利用大括号展开,到

git log --branches={"users/bertgp/*","/users/sessid/*"}

但是,最有可能的是,这些对您原始问题的回答都不适用于 Git 扩展。

这在 Git Extensions 2.49 中是可能的(不检查早期版本)。虽然很麻烦...

实际上,来自分支过滤器的文本按原样插入 git 命令行(或以 --branches= 为前缀),没有转义或类似的东西。这意味着您可以添加任意 git 选项。

以下是您应该知道的接下来的事情:

  1. 如果分支过滤器包含通配符号,则 GitExt 会为其添加前缀 --branches=
  2. git不接受超过一个分支的日志,所以你应该为每个分支使用--branches
  3. 对于远程分支应该使用--remotes
  4. 如果使用不带通配符的分支,则 git 会自动将 /* 添加到分支末尾,因此您不能使用 --branches=master,而应该使用 --branches=maste[r]假球

一些例子:

  1. users/berniegp/* --branches=maste[r]

应该按照你的要求去做。它会被GitExt转换为--branches=users/berniegp/* --branches=maste[r]

  1. users/berniegp/* --branches=maste[r] --remotes=origin/users/berniegp/*

同时显示远程跟踪分支(origin/users/berniegp/*)

  1. --reflog

显示还提交来自 reflog 的引用。可能对查找 'lost' 提交有用?

  1. --bisect

应该(我实际上没有尝试)显示引入问题的提交范围(在好与坏之间)

  1. --reverse

以相反的顺序显示提交。

git log的其他选项(https://git-scm.com/docs/git-log)