有没有办法在特定分支上的两个标签之间获取拉取请求。
现在,我正在使用 git log 来执行此操作。但是,这似乎带来了在第一个标签(PreviousVersion)之前创建的拉取请求。
git log --grep 'Merged PR' --oneline $CurrentVersion...$PreviousVersion --pretty=format:\"%s\"|cut -d':' -f 1|cut -d' ' -f3
你能帮我吗。
有没有办法在特定分支上的两个标签之间获取拉取请求。
现在,我正在使用 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 访问”,这通常是您想要的。
使用这个小示例存储库...
A
|
B [current]
|
C
|
| 1 [previous]
| |
| 2
| /
D
|
E
current...previous
将显示 B、C(只能通过当前访问)和 1、2(只能通过以前访问)。
previous..current
将仅显示 B 和 C。
current..previous
将仅显示 1 和 2。
有关示例,请参阅Pro Git 中的修订选择。