Git 两个提交/变更集之间的差异,不包括 merge 提交更改

标签 git git-diff

如何在 2 个提交更改集之间获取 merge 的 Git 差异,而不包括 merge 提交所做的更改。
例如:

Commit-1a
文件 - gitdiff.js 变化

function check(){ 
            var a=10;  
            console.log(a);  
        }

Commit-2b( merge 提交)
文件 - gitdiff.js
变化

function merge(){ 
            console.log(“inside merge”);   
        }   
        function mergechange(){ 
            console.log(“inside mergechange”);  
        }

Commit-3c
文件 - gitdiff.js
变化

function lastfn(){  
            console.log(“inside lastfn”);   
        }

3次提交后的文件内容

function merge(){   
            console.log(“inside merge”);   
        }       
        function check(){   
            var a=10;   
            console.log(a);    
        }
    
function mergechange(){    
            console.log(“inside mergechange”);    
        }    
        function lastfn(){    
            console.log(“inside lastfn”);    
        }

当我在提交 1a 和提交 3c 之间进行 git diff 时,我希望输出差异如下所示。
Git diff commit-1a commit-3c
文件 - gitdiff.js
变化

function check(){    
    var a=10;    
    console.log(a);    
}   
function lastfn(){    
    console.log(“inside lastfn”);    
}

有没有办法获得像上面这样的输出而不包括 merge 更改?

最佳答案

你不能做你想做的事。

Git 存储项目状态,而 git diff 只能显示项目状态之间的更改。对于 git diff 来说,两个状态之间的关系是什么、它们之间是否存在任何其他项目状态或者其中之一是否是 merge 完全无关。

关于Git 两个提交/变更集之间的差异,不包括 merge 提交更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71172020/

相关文章:

Git:比cherry-pick merge 两个分支更好的方法?

git - 从 TortoiseGit 中删除保存的凭据

linux - 如何将 Git 存储库中的所有分支列出到自己的控制台中

git - 如何使用 Git 查找一行(或一行的一部分)的第一次出现?

git - 执行 git apply 时出现错误 "git diff header lacks filename information when removing 1 leading pathname component "

python - GitPython 相当于 "git remote show origin"?

git - 始终使用寻呼机进行 git diff

git - 当我执行 "git diff"时如何获得并排差异?

git - 如何在不克隆/ checkout 的情况下获取存储库上标签之间的 git diff

git 差异 : what is the difference between --cached and --staged