git diff对比差异时指定或排除特定的文件和目录

文章目录

前言

你一般什么时候会用GPT?

居然会有这种话题,答案就是作为程序员的我天天在用,虽然GPT有个胡说八道的毛病,但试试总没错的,就比如今天题目中这个问题,我也是先查了GPT没好使,但给我提供了查询思路,最后在Stack Overflow上找到解决办法,记录一下

git diff指定或者排除文件

我就直接列答案了,没什么可说的,工具参数记住就好

指定文件和目录

bash 复制代码
git diff dev..feature --stat  -- ':*.pb.go' ':*.pb.h' ':*.pb.cc'

以上语句表示对比dev和feature分支差异的文件,但是只选择后缀为以上三种的文件,如果是特定的目录,将冒号后的内容替换成目录即可,-- ':src/thirdparty'

排除文件和目录

bash 复制代码
git diff dev..feature --stat  -- ':!*.pb.go' ':!*.pb.h' ':!*.pb.cc'

在上面的基础上加个取反的感叹号就行,如果是排除目录就在 !直接写目录就可以了,这种排除的写法还有另一种形式,用(exclude)代替感叹号,其中还可以写其他属性,感兴趣可以自己扩展查询一下:

bash 复制代码
git diff dev..feature --stat -- ':(exclude)*.pb.go' ':(exclude)*.pb.h' ':(exclude)*.pb.cc'

番外篇

今天在某乎上看到一个提问《C++有多难?》,看着大佬们口若悬河、引经据典的在诉说、在吐槽、在愤慨,却引起了我的回忆,我为什么选择C++?

只因为在人群中多看了一眼吧,有先入为主的因素,也有水到渠成的必然。

我最先接触的一门编程语言是C语言,对于刚刚接触编程的我来说,它是那么令人着迷,虽然开发环境是寒酸可怜的Turbo C,但是丝毫没有影响我的学习热情,刚开始打印出一个杨辉三角都开心的不得了,教科书上的每个例子我都敲了很多遍,虽然那古老的教材现在被大佬们批判的不行,但确实领我在代码的世界里入了门。

后来随着学习的推进,又逐步接触了Java、C#等高级语言,也接触了汇编、单片机等偏底层的领域,为什么没有选Java、C#而一直坚守C语言呢?有份程序员的孤傲,当时觉得C语言很酷,我是底层我牛X,你们这些语言不是带个虚拟机,就是拖个运行时一点都Cool,那为什么不选汇编语言呢?咳咳,确实吼不住。

就这样我带着C语言,C语言伴着我开始一步步经历大学生活,当然期间也从一些"旁门左道"里习得只言片语的C++,只是我不知道它还有这个名字,带着舍我其谁的年轻气盛,我和C语言一起去参加各种编程比赛,结果有好有坏,但实力确实很菜,虽然也拿到过一些区域或者国家级的名次,但如今已成过往云烟。

转眼间就来到了大四实习,一个专业100多人,少部分人选择了苹果应用,绝大多数投身于Java开发,而我独自一人选择了嵌入式C,为什么选择嵌入式,因为只有它带"C",也是在这短暂的几个月里我再一次听说了C++,但仅仅局限于了解C和C++有什么不同,C++好像有个class和struct挺像的。

开始真正的找工作了,受大学和室友一起打dota的影响,我毅然决然的加入了游戏开发大军,在那个各类游戏百花齐放的年代,C/C++在游戏行业有着根深蒂固的基础,因为我的C语言还不错,所以还是顺利的入了坑。

但随着踏入这个坑,我和C++开始正面交锋了,纠缠至今已经有10多年,中间工作6年之后有一次转Golang开发的机会被我拒绝了,我给那个面试官的回答是因为情怀吧,我不能离开C++。

如今我用C++20的标准在工作,与刚开始接触的C++98真的跨了一个世纪,各种语法糖之外是另一些语法糖,每个版本中标准委员会提到的特性,恨不得要3年后的要下个版本才能开发,庞大语言体系使得一些初入社会的毛头小子才配标注"精通"二字,而像我这种使用十多年的菜鸟只敢承认用过C++,略懂皮毛而已。

C++很难吗?真的很难!可不可以简单一点,其实它也可以很简单,不要拿着各种内存问题和我C++挑战,这不是我的强项,但我同样可以写出没有内存泄漏的程序;也不要拿着各种工具、运行时库和我比开发效率,这也不是我的强项,我难道就没有库吗,开源的世界里百花齐放。

不要一提到C++就是面向对象、STL、模板元编程,它是一门编程语言,一门用于完成任务的可编写逻辑的语言,用它写一个冒泡排序也很简单,不要过分夸大他的难度,每次你都把它最难的地方亮出来,对它来说是不公平的。

如今,我不会再说C++就是牛X其他语言都是垃圾这种脑抽的话,C++只是一种语言,一种我暂时还离不开的语言,但它不再是我的唯一,写个小工具偶尔也会使用Python或者Golang,不是我不再爱C++,而是有了更合适的选择而已。

C++,一门集强大与庞大于一身的语言,学会它容易,但学透它确实很难,我们在一起共同成长。

总结

  • GPT无处不在,每天必用超过了google
  • git diff 指定文件类型 git diff dev..feature -- ':*.pb.go' ':*.pb.h' ':*.pb.cc'
  • git diff 排除文件类型 git diff dev..feature -- ':!*.pb.go' ':!*.pb.h' ':!*.pb.cc'

==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==


每天提问自己一个问题,试验一段时间,看看是否有效吧,本质还是眼高手低造成了目前的焦虑

相关推荐
跨境观察员小周35 分钟前
如何使用Chat GPT进行爬虫?2026年最新教程
爬虫·gpt·chatgpt
zmzb01031 小时前
C++课后习题训练记录Day154
数据结构·c++·算法
鲸~屿1 小时前
Git上传本地文件到GitHub教学指南
git·github
殳翰10 小时前
下服务器端开发流程及相关工具介绍(C++)
开发语言·c++
奇牙coding12310 小时前
gpt-5.5、deepseek-v4-pro、claude-opus-4.8 跑同一套 50 道编程题——有一类任务结果和官方榜单完全反过来
gpt·ai
青瓦梦滋11 小时前
协议定制/序列化-反序列化(Linux视角)
linux·服务器·网络·c++
山登绝顶我为峰 3(^v^)314 小时前
C/C++ 交叉编译方法
java·c语言·c++
库拉大叔17 小时前
一站式AI模型聚合平台实测:GPT/Claude/Gemini全系调用,国内直连无需翻墙
人工智能·gpt
郝学胜-神的一滴18 小时前
中级OpenGL教程 013:渲染器类架构设计与逐帧渲染流程详解
开发语言·c++·unity·游戏引擎·图形渲染·opengl·unreal