在引用分支的“切割”之间获取git提交

j13ufse2  于 2023-11-15  发布在  Git
关注(0)|答案(3)|浏览(149)

我们有一个master分支,我们周期性地从其中分支出(“剪切”)释放分支。所有的释放分支都保证具有前缀release/
假设在过去的某个时候,我们削减了发布分支release1。一些提交被添加到master,现在我们想削减发布分支release2
有没有办法获取这些剪切之间的提交列表?可能有任意多个提交,所以简单地执行git log -10来获取10个最新的提交是不太可能的。我也没有 * 任何 * 保证 * 最后一次剪切是在 * 什么时候 * 进行的。我不知道它是发生在昨天,最后一个小时,还是去年.

yftpprvb

yftpprvb1#

首先,你应该标记你的分支点。这将使生活更容易在未来。
其次,“cut”不是git术语--你不是在制作一个用于生产黑胶唱片的母版。你是在创建发行分支,对吧?这个操作叫做 * 分支 *。
无论如何,如果您想找到当前master的最后一个共同祖先和给定的发行分支(这将是您应该标记的分支点),

$ git merge-base master release1

字符串
我会告诉你。提交列表只是

$ git rev-list master ^$(git merge-base master release1)


或什么

svujldwt

svujldwt2#

阅读git log的限制提交。
使用--since和--until:

git log --since "t1" --until t2"

字符串
日期格式相当灵活,像昨天这样的单词也可以使用。
举个例子:

git log --since "2023-11-06" --until "2023-12-06"

9jyewag0

9jyewag03#

我们很幸运地通过一个专门的Jenkins作业机械地创建发布分支,使它们成为release/yyMMdd-HHmmss。因此:

$ git fetch
$ LAST_RELEASE=`git branch -a | grep -E origin/release/[0-9]{6}-[0-9]{6} | sort | tail -1
$ git log $LAST_RELEASE..master

字符串
很管用

相关问题