【问题标题】:Show conflict diff part of a merge显示合并的冲突差异部分
【发布时间】:2013-05-10 12:38:58
【问题描述】:

我需要向团队展示我在解决合并冲突期间所做的更改。

我知道这有点难,但我当然相信这是有可能的。我已经尝试过git show -mgit show -c

【问题讨论】:

    标签: git merge merge-conflict-resolution


    【解决方案1】:

    查看合并提交(具有多个父项的提交)的哈希(或标记)并执行以下操作:

    git diff hash hash^1 hash^2
    

    它将输出更改的 3 路差异。

    hash^(或hash^1)引用hash第一个父提交
    hash^2引用hash第二父提交

    【讨论】:

    • 此外,设置git diff --cc hash hash^1 hash^2 将以与gitk 显示它相同的方式格式化差异。虽然不确定 OP 首选哪种输出格式... 实际上,没关系...git diff 默认情况下会这样做,似乎,当你给它三个哈希时...
    • 谢谢!做了一个别名:dc = "!f() { HASH=$1; shift 1; git d --cc $HASH $HASH^1 $HASH^2 $@; }; f"
    • 当我使用这条线时,我得到fatal: ambiguous argument 'hash': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: git <command> [<revision>...] -- [<file>...]>
    • 老兄,您必须将hash 替换为真正的哈希合并提交的提交标签...
    • 很好的答案!当我查看manpage for git diff 时,它没有显示具有三个哈希的变体......但这对我有用(git 1.9.1)。这是没有证件的事情吗?如果我能阅读有关这个​​漂亮新选项的文档,那就太好了。
    【解决方案2】:

    如果您使用标准的gitk 工具,并单击合并提交,左下方窗格将显示冲突解决方案。

    【讨论】:

    • @brauliobo 我会假设 git diff hash hash^1 hash^2 其中hash 是合并提交的哈希值。
    【解决方案3】:

    随便用

    git diff ORIG_HEAD MERGE_HEAD(or FETCH_HEAD)
    

    MERGE_HEAD 为您的本地合并文件保留,ORIG_HEAD 是您要合并的可能冲突的提交。

    FETCH_HEAD 是您在合并之前获取更改的 repo 的哈希值。

    如上所述,PULL 仅获取(在远程仓库中,可能的来源)和 Merge

    如有疑问,请查看您的 .git 文件夹以查看存储哈希的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多