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

这篇具有很好参考价值的文章主要介绍了git diff对比差异时指定或排除特定的文件和目录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

你一般什么时候会用GPT?

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

git diff指定或者排除文件

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

指定文件和目录

git diff dev..feature --stat  -- ':*.pb.go' ':*.pb.h' ':*.pb.cc'

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

排除文件和目录

git diff dev..feature --stat  -- ':!*.pb.go' ':!*.pb.h' ':!*.pb.cc'

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

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'

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

每天提问自己一个问题,试验一段时间,看看是否有效吧,本质还是眼高手低造成了目前的焦虑文章来源地址https://www.toymoban.com/news/detail-763079.html

到了这里,关于git diff对比差异时指定或排除特定的文件和目录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git 拉取项目指定目录或者指定文件

    因为要做数据库自动更新,需要拉取Gitlab项目中/bm-server-biz/docs目录下的表更新sql文件,其他的都不需要,这时候可以利用git的“sparse checkout”方法(设置稀疏检出)来实现。 1、在项目目录下git 初始化  2、修改.git文件夹里面的 config 文件  .git/config  ,启用 sparse checkout(稀

    2024年02月11日
    浏览(37)
  • git diff两个分支有差异git merge却显示没有可以合并的内容

    problem: 用git diff可以发现两个分支还是有很多不一样的地方,可用git merge显示not something we can merge 输入gitk查看,发现preview已经在这个分支前面了。。。虽然不太懂,但这样是没办法将preview合并当前分支的,只能这个分支合并preview。。。 解决:因为也不会别的解决方法,因

    2024年02月12日
    浏览(36)
  • 从Git远程仓库单独拉取指定目录或文件

    工作中,总是会有一些特殊需求或场景,只希望从Git的远程仓库里检出或拉取指定的文件夹或部分文件出来。Git 1.7.0后,可以使用Sparse Checkout(稀疏检出)模式实现。 Git是一种版本控制系统,它可以记录文件在不同时间点的版本变化并且跟踪文件的更改历史。它最初是由Linu

    2024年02月07日
    浏览(35)
  • Delta 一个新的 git diff 对比显示工具

    平时我们会在命令行使用 git diff 相关命令来对比文件的差异。(git diff命令可参考:git-diff命令说明) 比如:当前文件和该文件以前某一次提交进行对比、某文件的某两次提交记录进行对比、对比电脑上任意两个文件的差异。 但是 git diff 对比出来没有行号,并且不能并排显

    2024年02月13日
    浏览(37)
  • git差异对比

    二、单文件版本对比,同分支 2.1. 查询单文件提交记录 2.2. 单文件版本之间差异对比 选中任意2个版本,右击【比较版本差异】即可 比较第1次提交和第2次提交之间的差异 不同分支

    2024年02月07日
    浏览(30)
  • Linux diff命令教程:彻底搞懂如何找出文件之间的差异(附实例详解和注意事项)

    diff 命令,即 differences ,主要用于比较两个文件或者两个文件夹中文件的差异。在日常开发或者文档生成中,我们常常会同时维护着多个版本的文件, diff 命令就能用来帮助我们分析出不同版本之间的区别。 diff 命令会逐行比较并在被比较的两个文件中寻找差异,如果文件相

    2024年04月10日
    浏览(36)
  • git合并指定commit——git合并某个特定的提交commit到指定的分支上

    git合并指定commit——git合并某个特定的提交commit到指定的分支上 1、应用场景: 在A分支上提交了一个commit,B分支也同样需要这个commit的代码,为了避免人工复制代码,可以用git的一些操作替代 2、操作步骤 1、在当前A分支(deploy/t),通过 git log 先找到A分支的commit代号( 简

    2023年04月08日
    浏览(37)
  • Linux copy时排除某文件/目录

    ls x1/ : 将x1目录下的文件/目录全部列出来(不包含隐藏的,否则要加 -a) | : 管道,将前面命令输出的内容作为输入参数传给后面的命令 grep -v x2 : 排除x1目录下的x2文件/目录 (-v的作用是排除) xargs -i : xargs实现将管道传递过来的stdin进行处理然后传递到命令的参数位置上; find: 查

    2024年02月10日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包