如何验证 git 合并不包含额外的更改



在 git 中,如何验证merge upstream master提交不包含任何其他差异?假设我想验证此人除了实际合并上游主分支的更改外,没有做任何"偷偷摸摸"的事情。

我想验证唯一的差异来自他们所做的其他提交;他们没有执行"邪恶合并"。

有没有办法验证在合并步骤中没有进行其他更改?
或者更好的是:向我展示潜在的"邪恶合并"差异,这样我就可以亲眼看看可能做了哪些额外的工作?

示例场景:

          P1---P2   P3---P4---P5---P6
         /         /        /       
    A---B---C---D--E--------F---------G master
                          /
                     C1---C2
P1..P2: First pull request
C1..C2: My working branch
P3..P4: More work done inbetween
P5: The commit that merges in master branch changes
P6: More regular work
  1. 有人向我的存储库发送拉取请求(P1..P2
  2. 拉取请求太棒了,我合并了它(E
  3. 我做一些进一步的开发(C1..C2),将我自己的分支集成到master(F),并发布
  4. 对方在此期间做了更多的工作(P3..P4
  5. 他们将上游更改合并到本地存储库 (P5 中,进行更多更改 ( P6 ),并发送第二个拉取请求
  6. 我可以验证他们在合并(P5)期间没有潜入任何额外的差异吗?

您可以通过执行差异差异来检查 git 合并提交是否包含任何其他更改。这是一种方法。

          P1---P2   P3---P4---P5---P6
         /         /        /       
    A---B---C---D--E--------F---------G master
                          /
                     C1---C2
  1. 计算合并前原始公共父E和主分支提交之间主分支中所有更改的差异,F

    git diff E F> master_changes_to_merge.txt

  2. 计算"在主节点中合并"提交中更改的所有内容的差异,P5

    git diff P4 P5> master_changes_actually_merged.txt

  3. 差异那些:

    差异master_changes_to_merge.txt master_changes_actually_merged.txt

如果步骤 3 没有显示输出,则应该没有恶意的合并更改。

最新更新