【问题标题】:git diff exclude merge - commitsgit diff 排除合并 - 提交
【发布时间】:2020-02-15 04:55:17
【问题描述】:

我试图在分支 FEATURE-1 中列出所有更改的文件,忽略它对分支 DEV 的合并提交,它最初是使用 git diff 创建的。所以图表看起来像这样:

         x---y---z---w---feature
        /   /   /
---a---b---c-+-d-+-e---dev

当我在 y 提交时,输入

git diff --name-only dev...feature

我得到了我需要的东西。但是在将功能分支合并到 dev 之后,想象我们现在在 w 上,使用这个命令我得到空白输出。所以我需要以某种方式从 git diff 中排除所有合并提交。有没有办法排除此类提交?提前致谢。

我使用 git 版本 2.21.0.windows.1 Windows 10,用于本地项目

【问题讨论】:

    标签: git gitlab diff commit


    【解决方案1】:

    过时的答案(见 cmets)

    只需在合并前引用提交而不是dev

    git diff --name-only <commit e>...feature
    

    (如果合并提交是dev 上的最后一个,您可以使用HEAD^ 而不是首先在分支日志中搜索哈希)


    在 cmets 之后编辑:

    您的图表似乎更像这样:

          X---Y---Z <<< feature
         /     \   \ 
    A---B-------C---D---E <<< dev
    

    【讨论】:

    • 但是如果我有几个合并?不止一个
    • @DenisBabichev 您能否尝试更新您的图表以帮助我们更好地了解情况?
    • 令人困惑的是,尽管您描述了将feature 合并到dev,但您的图表显示相反:从dev 合并到feature。那么它是哪一个?此外,“+”不是很清楚。什么commit是merge commit,从这里很难说。
    • 对不起,我不知道 git 的标准 - 绘图,我的错。所有的合并都是从功能到开发。 y - commit 对应 c-commit,z-commit 对应 d-commit。
    • 我不得不再次向你提问,抱歉 :-) 当你说“对应”时,是否意味着 c 是通过将 y 合并到 @ 中创建的提交合并987654332@ 来自feature?如果是这样,我会帮你重新绘制图表。
    猜你喜欢
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多