如何在分支之间进行git差异并排除一个文件

如何在分支之间进行git差异并排除一个文件,git,Git,对于某些人来说,这应该很简单,我似乎无法获得正确的语法。情况是,我已经检查了我的一个同事分支,我想看看这个分支和开发分支之间的区别,但是我不想看到某个特定文件中的更改(因为它是一个巨大的文件)。以下是我尝试过的: git diff origin/dev ':(exclude)package-lock.json' git diff ':(exclude)package-lock.json' origin/dev git diff -- . ':(exclude)package-lock.jso

对于某些人来说,这应该很简单,我似乎无法获得正确的语法。情况是,我已经检查了我的一个同事分支,我想看看这个分支和开发分支之间的区别,但是我不想看到某个特定文件中的更改(因为它是一个巨大的文件)。以下是我尝试过的:

git diff origin/dev ':(exclude)package-lock.json'

git diff ':(exclude)package-lock.json' origin/dev

git diff -- . ':(exclude)package-lock.json' origin/dev
我知道我很接近

注意。。。有人告诉我,这个问题可能与这个问题重复:但事实并非如此。这个问题的公认答案是:

git diff -- . ':(exclude)db/irrelevant.php'
但是,当我在系统上运行此命令时:

git diff -- . ':(exclude)package-lock.json'

我什么也得不到。我什么也得不到的原因可能是,在这个命令中,从来没有指定我希望在我的当前分支和源/dev之间有一个差异。我想要的与上面的答案类似,但也表明了当前分支和远程分支之间的差异。

以下内容适合我:


git diff branchname--':(排除)filename'

您必须最后列出路径。必须有包含路径才能有排除路径。您的一些尝试可以完成这些操作,但没有一个可以完成所有操作:)


可能重复的不是重复的,这是我去得到我已经尝试过的东西的帖子,但它在我的特殊情况下不起作用。当我运行建议的答案:“git diff--.”(排除)package lock.json“我没有得到任何结果,因为我没有在任何地方指定origin/dev,但我不知道如何也指定它!我就知道有人会这么快。。。当系统允许我这样做时,我会接受这个答案…真的吗?不适合我;我得到一个错误,没有什么可以排除的。可能有点不同versions@MarkAdelsberger我的版本是2.7.4。这两个答案都适用于我的答案
git diff origin/dev -- . ':!/package-lock.json'