我们使用git来存储源代码,并使用master / release / develop作为主要分支。通常,我们创建新分支以添加新功能,然后合并以进行开发和发布。但是当生产需要立即修复时,我们直接在prod中更改代码并创建hotfix分支,然后将其与所有3个主要分支合并。
我想将这些未提交的变更与git进行比较,尤其是与有一天将成为新的master的发布和开发分支进行比较-为了确保没有人忘记对prod进行一些变更。
手动地,我可以使用git diff来比较它是否与release分支合并,但是它不够快并且是手动的。
您能帮我如何将未提交的更改与git内容进行比较吗?
答案 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;