比较git分支中prod中未提交的修补程序

时间:2018-12-14 07:19:05

标签: git production hotfix

我们使用git来存储源代码,并使用master / release / develop作为主要分支。通常,我们创建新分支以添加新功能,然后合并以进行开发和发布。但是当生产需要立即修复时,我们直接在prod中更改代码并创建hotfix分支,然后将其与所有3个主要分支合并。

我想将这些未提交的变更与git进行比较,尤其是与有一天将成为新的master的发布和开发分支进行比较-为了确保没有人忘记对prod进行一些变更。

手动地,我可以使用git diff来比较它是否与release分支合并,但是它不够快并且是手动的。

您能帮我如何将未提交的更改与git内容进行比较吗?

1 个答案:

答案 0 :(得分:0)

您所做的任何手动操作都可以转换为脚本

例如,如果您要比较3个分支:

git diff <b1> <b2> <b3>

如果需要,还可以在分支之间生成补丁文件,然后再次用脚本包装它。您的脚本可能会成为您的别名

# extract all commits as patches, each one inits own patch file
git format-patch <b1> <b2>

# generate a single patch per changes
git diff <b1> <b2> > patch.txt

一旦有了脚本,就可以使用git hooks或CI / CD进程,它们会在合并时触发并为您生成补丁。

这是一个示例脚本:

#!/bin/sh

# loop on the desired branches (you can pass them as arguments as well)
for branch in b1 b2
do
    # generate the patch file and write it to a file with the branch name
    git diff master..$branch > $branch.txt
done;