是否有一个选项来限制git差异到一个给定的文件扩展名集?
当前回答
是的,如果你确保git扩展一个glob而不是你的shell,那么它将在任何级别匹配,所以像这样的东西(引号很重要)应该工作得很好。
git diff -- '*.c' '*.h'
其他回答
扩展的命令行参数。
git diff *.py
在另一种选择中,你可以将find管道导入git diff:
find . -name '*.py' -type f | git diff --
对于简单的文件模式,这似乎是可行的:
$ git ls-files -zm '*.txt' | xargs --null git diff
空格安全,你也可以有多个扩展:
$ git ls-files -zm '*.h|*.c|*.cpp' | xargs --null git diff
为了递归地包括文件(包括当前目录),这对我来说是有效的:
git diff -- '***.py'
最后我得出了这个结论:
commit=<the_commit_hash_goes_here> && git diff --name-only $commit | grep -i Test | egrep -v '\.sql$' | xargs git diff $commit --
只有当文件名包含单词“test”(不区分大小写)并且不以.sql结尾时,才会显示指定提交的差异,根据您的情况修改管道。
Git diff只会显示非暂存文件中的差异。
我发现这个问题是因为我想从git diff中排除.info文件,我通过git add *.info来实现这一点,这减少了剩下的文件。
推荐文章
- 撤消git平分错误
- 使用.gitconfig配置diff工具
- 如何配置Mac OS X术语,使git有颜色?
- Visual Studio Code: .git文件夹/文件隐藏
- “node_modules”文件夹应该包含在git存储库中吗
- 为什么git-rebase给了我合并冲突,而我所做的只是压缩提交?
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖