1

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

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

手动我可以使用 git diff 并比较它是否与发布分支合并但它不够快而且它是手动的。

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

4

1 回答 1

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;
于 2018-12-14T08:27:21.030 回答