【问题标题】:git log for commits matching branch or tag globgit log 用于匹配分支或标记 glob 的提交
【发布时间】:2014-04-18 21:55:15
【问题描述】:

我想获取与 git 中的分支 glob 匹配的所有提交的日志。

考虑以下历史记录(小写字母是提交,大写提交是指向那里的分支)

 /-b --XX, tag2
a--c --XY, tag1
 \-d --ZZ, HEAD

我希望所有与分支 glob abc* 匹配的提交(在此示例中没有,但可能有一些),与与标记 glob tag* 匹配的提交合并(在此示例中为 tag1 和 tag2)。我会期待

git log --branches="abc*" --tags="tag*"

返回 a、b 和 c,但它返回 a 和 d。

【问题讨论】:

  • 我不完全理解你的符号。当您说--branches="abc" 时,实际上是什么来代替“a”?在您的第一个图中,“a”似乎是一个提交,所以“a”将是一个提交哈希?
  • git log --tags="tag*" 返回 b、c 和 a。这似乎和预期的一样?
  • 我不知道是否有任何分支与分支 glob 匹配,所以我不能忽略它。将其更正为--branches="abc*",其中abc 将由我的应用程序确定。
  • 对我来说,git log --branches="notmatchinganything" --tags="tag*" 匹配 a、b 和 c。这不是你想要的吗?
  • 这实际上是一个完全不同的问题:如果分支/标签 glob 不包含特殊字符,Git 会自动将 /* 添加到它们,这让我在这些测试中多次失望。使调试变得更糟的是,只要 --tags--branches 参数找不到任何东西,它就会默认为 HEAD

标签: git glob git-log


【解决方案1】:

我不得不不同意你的观点。 git log --branches="X*" 没有列出仅由 ZZHEAD 指向的提交。

【讨论】:

  • 也无法重现所描述的行为。只需按预期获取“c”、“b”和“a”即可。
  • 啊抱歉,只有在没有分支匹配 glob 时才会出现问题,然后使用 HEAD。如果我使用额外的--tags= 参数,那将是一个问题。相应地编辑了问题。
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2021-11-06
  • 2017-11-15
  • 2018-08-08
  • 2019-07-28
  • 1970-01-01
  • 2016-06-10
相关资源
最近更新 更多