使用git-diff时如何忽略某些文件

https://www.jianshu.com/p/8ec1b32f2e13

最近遇到这样的需求:我需要把某两次提交之间的代码变化diff出来,给另外一位童鞋去apply,但是diff的时候我又想忽略其中某几个文件(比如:自动化生成出来的类似build.js,dist.js之类的文件)。于是鼓捣了一番,找到了如下解决办法:

设置git-diff 自定义driver

在gitattributes中设置要忽略的路径和规则,使得对build.css和build.js做git-diff的时候有直接掉过的效果

设置git-diff driver

git支持自定义diff驱动器(见其中diff.driver.command的说明),意思是说git-diff的时候可以指定一个命令去跑,而不是跑内置的。有了这个配置支持,我们就可以设置如下nodiff的指令(在项目根路径):

git config diff.nodiff.command /bin/true

这个指令干嘛呢?这个指令什么都不干,直接返回true(/bin/true),这样就有了类似跳过的效果。

设置git attributes

关于git attributes可以直接看官方文档说明 ,我们利用这个特性在项目根目录中,创建一个.gitattributes文件,并添加如下配置:

build.css diff=nodiff
build.js  diff=nodiff

好了现在我们就可以连起来理解了,当我们运行git diff命令的时候,git就会读取.gitattributes的配置,然后发现遇到build.css和build.js文件的时候,需要执行nodiff指令,而nodiff指令被我们此前配置成了/usr/bin/true直接返回true,于是,就直接“跳过”了。
这里文件路径的配置和.gitignore是一样的,支持目录,文件,通配符之类的,可以轻松实现忽略一批文件或者整个目录。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值