如何在分支之间执行git diff并排除一个文件

时间:2018-02-06 20:02:41

标签: git

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

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

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

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

我知道我已经关闭......

注意......我被告知这个问题可能与此问题重复:Want to exclude file from "git diff"但事实并非如此。这个问题的公认答案如下:

git diff -- . ':(exclude)db/irrelevant.php'

然而,当我在我的系统上运行此命令时:

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

我一无所获。我得不到任何东西的原因很可能是因为在这个命令中从未指定我想在我当前的分支和origin / dev之间进行差异。我想要的是类似于上面的答案,但也指出了当前分支和远程分支之间的区别。

2 个答案:

答案 0 :(得分:3)

以下适用于我:

git diff branchname -- ':(exclude)filename'

答案 1 :(得分:1)

你必须最后列出路径。您必须具有包含路径以包含排除路径。你有些尝试都会做这些,但都没有做到:)

git diff origin/dev -- . ':!/package-lock.json'