git中两个标签之间的拉取请求

问题描述

有没有办法在特定分支上的两个标签之间获取拉取请求。

现在,我正在使用 git log 来执行此操作。但是,这似乎带来了在第一个标签(PrevIoUsversion)之前创建的拉取请求。

git log --grep 'Merged PR' --oneline $CurrentVersion...$PrevIoUsversion --pretty=format:\"%s\"|cut -d':' -f 1|cut -d' ' -f3

你能帮忙吗。

解决方法

$CurrentVersion...$PreviousVersion 并不意味着“在这两次提交之间”。这意味着“只有 $CurrentVersion 或只有 $PreviousVersion 可以访问任何提交”,因此您可能会在 $PreviousVersion 之前获得一些提交。

r1...r2 称为 r1 和 r2 的对称差,是 定义为 r1 r2 --not $(git merge-base --all r1 r2)。这是一组提交 可以从 r1(左侧)或 r2(右侧)之一到达,但不能 来自两者。

改为使用 $PreviousVersion..$CurrentVersion(两个点)。这也不完全是“在这两次提交之间”,因为 Git 历史不是线性的。这意味着“提交可通过 $CurrentVersion 访问而无法通过 $PreviousVersion 访问”,这通常是您想要的。

使用这个 little example repository...

A
|
B  [current]
|
C
|
|  1 [previous]
|  |
|  2
| /
D
|
E
  • 当前可以看到 B、C、D、E。
  • 上一个可以看到 1、2、D、E。

current...previous 将显示 B、C(仅当前可达)和 1、2(仅先前可达)。

previous..current 将只显示 B 和 C。

current..previous 将只显示 1 和 2。

有关示例,请参见 Revision Selection in Pro Git