Github:列出两个标签之间的PR

4

1
在 Git 或 Github 中? - evolutionxbox
据我所知,PR是GitHub的一个功能,因此这个问题只适用于GitHub。 - the21st
PR可能是Github的一个功能,但您正在要求合并的PR,这些PR是与提交消息合并的,其中包含类似“Merge PR#546”的内容。 - evolutionxbox
我认为这是不可能的,请在此处检查可用选项 https://docs.github.com/en/github/searching-for-information-on-github/searching-issues-and-pull-requests - Prav
@evolutionxbox 我假设 Github 知道这个事实的区别,即使是从 PR 中重新定位的提交,当我浏览所有提交到主分支的提交时,Github 也会向我显示它们来自哪个 PR。因此,Github 在某个地方存储了这些信息。 - the21st
显示剩余3条评论
2个回答

2

You can do this using git CLI, like:

git log --grep='Merge pull request' --since='2019-01-01' --until='2020-01-01'

您正在搜索两个日期之间合并请求的位置。为此,您需要找出标记的日期。

上述解决方案假定在PR期间没有进行任何rebasing。

在GitHub上,您可以使用UI进行搜索,搜索两个日期之间的PR。


1
这不会找到使用rebase合并的PR。这些在纯git中是“不可见”的,因为它们看起来就像是在master/main上开发的一样。只有GitHub本身才能获取这些信息。 - Joachim Sauer
@JoachimSauer 感谢您指出这一点。我已相应地编辑了我的答案。 - Lajos Arpad
请注意,GitHub还允许将合并提交的名称更改为任意名称。 - dan1st
@dan1st 我认为这是一个边缘案例。我的意思是,确定如何管理拉取请求是一项约定原则的问题。如果团队允许这样做,那么它可能会限制上面CLI解决方案的可用性,因此,如果我可以给出建议,我会建议任何团队避免重命名PR注释。 - Lajos Arpad

0

(这个特定的答案基于标签,而不是标签。)

值得指出的是,在这里,“之间”的概念并不总是有意义的。有时候它确实有意义;例如考虑以下一系列提交:

...--G--H--I--J--K--L--M--N   <-- branch
        ^           ^
        |           |
     tag:v1.0    tag:v1.1

两个标签之间的提交是 I-J-K。 (在决定是否包括 HL 的边界时存在一个栅栏问题1。)

但是:这一系列提交怎么办?

          tag:v1.0
             |
             v
          I--J--K   <-- br1
         /
...--G--H
         \
          L--M--N   <-- br2
             ^
             |
          tag:v1.1

这些标签之间有哪些提交(如果有的话)?

无论如何,Git本身缺乏类似问题跟踪器、评论系统和GitHub风格的Pull Requests等功能。将这些GitHub特定功能映射到Git必须在GitHub端完成。


1计算机编程中最困难的两个问题是命名、缓存和栅栏错误。


我很欣赏这个边缘情况,但在99%的情况下,我们的团队只是在master中标记提交并将该标记的提交部署到生产环境。我只是想要一个“changelog”,其中列出了自上次标记/部署以来部署的新PR的格式。 - the21st

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