如何在Git分支间执行diff并排除指定文件
解决跨分支git diff时排除指定文件的问题
嘿,我太懂这种明明思路对但就是卡语法的感觉了!针对你要对比同事分支和dev分支差异、同时排除某个大文件的需求,直接用下面的命令就行:
git diff dev -- . ':(exclude)path/to/your/large-file.ext'
我给你拆解下这个命令的关键点:
dev:指定你要对比的目标分支(也就是拿当前检出的同事分支和dev分支做差异对比)-- .:表示对比当前工作目录下的所有文件(确保不会漏掉其他文件的变更)':(exclude)path/to/your/large-file.ext':这部分就是核心的排除规则,把你要忽略的大文件路径填进去就行,路径可以是相对路径也可以是绝对路径
如果需要排除多个大文件,直接追加更多的排除规则就好:
git diff dev -- . ':(exclude)file1.ext' ':(exclude)docs/big-file.pdf'
另外你提到有人觉得这个问题和“Want to exclude file from 'git diff'”重复,其实你这种跨分支对比的场景,只是在diff命令里多指定了对比的分支目标,核心的排除逻辑是一致的,但用法上要注意分支参数的位置——必须放在--前面,这样git才会正确识别分支和文件过滤规则的边界,这也是很多人容易卡壳的地方。
内容的提问来源于stack exchange,提问作者Dallas Caley
相关产品推荐
相关产品推荐

