【问题标题】:how to check that all changes were taken after a git merge如何检查是否在 git 合并后进行了所有更改
【发布时间】:2016-08-19 09:58:44
【问题描述】:

在我们的 git 工作流程中,我们使用分支(与此处a successful git branching model 描述的差不多)

所以当我们将一个分支合并到另一个分支时:

git checkout <destination>
git merge --no-ff <src>

如果有冲突,在解决它之后,我想检查合并是否正确(如果目标中没有任何内容被覆盖,并且所有更改都来自源)。

为了检查目标中是否没有任何内容被覆盖,我在合并之前的提交和具有合并分辨率的提交之间运行了差异。

但是我如何检查所有内容是否都来自 master 并且没有在合并/解析中丢失?

谢谢。

【问题讨论】:

  • 您应该手动进行。对每个文件运行 diff。
  • @MegaTron 我很害怕 :)
  • 我认为没有任何办法,因为只有您知道必须应用哪些更改。但也许我不对
  • 当然,我可以决定结果是否正常,但基本上我想在源和目标之间做一个差异,而不是在目标中完成的额外内容

标签: git merge git-merge-conflict


【解决方案1】:

您可以在合并的分支中查看生成的合并与上一次提交的差异

git diff HEAD^

此命令将显示您当前状态(在您的情况下应该是合并)与此分支中的先前提交之间的所有文件的差异

【讨论】:

    【解决方案2】:

    好吧,您可以确定所有冲突都已成功“采取”。如果发生冲突,您无论如何都必须手动解决它们,因此git 无法帮助您。

    如果您经常不确定冲突期间会发生什么,git help merge 可以为您提供以下选择:

       An alternative style can be used by setting the "merge.conflictstyle" configuration variable to "diff3". In "diff3"
       style, the above conflict may look like this:
    

    设置此选项使您不仅可以看到您和他们的一面,还可以看到冲突行的原始文本。这应该消除所有猜测。

    【讨论】:

    • 冲突不是问题。而是我想在源和目标之间做一个差异,但没有在目标中完成的额外内容
    • 你的意思是destination是合并前还是合并后?也许更新你上面的问题并画一张照片。
    猜你喜欢
    • 2014-09-06
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 2014-10-27
    • 2019-09-03
    • 2012-09-25
    相关资源
    最近更新 更多