git 如何获取要开发但未合并到master的合并提交列表...反之亦然

58wvjzkj  于 2023-01-28  发布在  Git
关注(0)|答案(1)|浏览(152)

目前我们的工作流程非常手动。
吉拉买票,比特桶买回购。很多回购。太多回购了。
使用Sourcetree,显示开发分支,仅父分支,与我们维护多年的电子表格比较所有不同的repos,这样我们就可以看到(并制作报告/图表)合并和发布发生的内容和时间。
我们非常非常非常很少把普通提交推到master或develop。通常它总是合并特性分支提交到develop,或者热修复分支提交到master。
我们想知道的是...对于一个给定的repo,我们是否可以创建一个简单的列表,列出要开发但尚未合并到master的合并提交。
我们希望从多个回购中提取这些信息,然后合并并排序该列表,这样我们就可以按照在所有所需回购中进行合并的顺序来获得合并列表。
一旦我可以得到一个不在master中的开发合并列表,相反,因为热修复程序存在,当前的工作流程意味着大量的手动切换来获得这些信息。
我们有一个commit-msg钩子,它把Jira票号放在提交消息的开头,所以模式是^[A-Z]++-\d++。如果这个模式不合适,那么作者的电子邮件地址,就像我们偶尔在发布时做一个快速的手动补丁一样。
因此,我们需要的输出可能类似于:

IN-1234[TAB]<current directory>[TAB]<develop commit date>[TAB]<develop commit hash>[TAB][TAB]
IN-1232[TAB]<current directory>[TAB]<develop commit date>[TAB]<develop commit hash>[TAB][TAB]
IN-1236[TAB]<current directory>[TAB]<develop commit date>[TAB]<develop commit hash>[TAB][TAB]
me@work.com[TAB]<current directory>[TAB][TAB][TAB]<master commit date>[TAB]<master commit hash>

诸如此类的事情。
如果排序可以基于2 <commit date> s的最大值,那么很好,但是上述格式的数据将适合我们的电子表格,它具有所有的公式和排序功能。
我很乐意做所有的脚本...我只是不知道如何做git的搜索/比较/报告。
信息:我们一次合并一个分支以进行开发,一次合并提交从开发到master,以便在部署的代码最终需要删除时轻松从master恢复...罕见...但确实发生了...我们在master中进行恢复,合并提交以进行开发,创建新的分支,然后还原还原,重新创建还原的代码到一个分支...都是手动的...这么多手动的!!!多年的这本手册!请温柔!!!

mzmfm0qo

mzmfm0qo1#

要在develop上获取未合并到master的提交:

git log master..develop

要在输出中只包含合并提交(不包含常规提交):

git log --merges master..develop

请注意,这将只适用于“真实的的”合并,任何类型的变基,樱桃挑选,或挤压合并将不会被检测为“合并”。
使用--format--pretty仅输出所需的信息。

相关问题