是否有一个选项来限制git差异到一个给定的文件扩展名集?
当前回答
Git diff只会显示非暂存文件中的差异。
我发现这个问题是因为我想从git diff中排除.info文件,我通过git add *.info来实现这一点,这减少了剩下的文件。
其他回答
注意参数顺序不同…例如:
git diff master --name-only --relative -- "**/*.ts" "**/*.tsx" "**/*.js" "**/*.jsx" "**/*.vue"
'diff'后面需要跟'master'
在git版本2.18.0上测试时,文件扩展名应该使用双引号。如果你想找到本地存储库和远程存储库之间的最后一个差异,在拉取后,你可以使用:
git diff YourBranchName@{1} YourBranchName --name-only "*.YourFileExtionsion"
例如:
git diff master@{1} origin/master --name-only "*.cs"
上面的答案似乎都不适合我在git bash下的Windows。我不确定这是否是一个版本的事情(我使用1.8.4)或Windows/bash的事情;此外,在我的情况下,我想区分两个分支,其中每个分支都有其他分支中不存在的额外文件(因此“查找”基于的是疏忽)。
不管怎样,这对我来说是有效的(在我的例子中,寻找python文件之间的差异):
git diff branch1 branch2 -- `git diff --summary branch1 branch2 | egrep '\.py$' | cut -d ' ' -f 5`
Git diff只会显示非暂存文件中的差异。
我发现这个问题是因为我想从git diff中排除.info文件,我通过git add *.info来实现这一点,这减少了剩下的文件。
最后我得出了这个结论:
commit=<the_commit_hash_goes_here> && git diff --name-only $commit | grep -i Test | egrep -v '\.sql$' | xargs git diff $commit --
只有当文件名包含单词“test”(不区分大小写)并且不以.sql结尾时,才会显示指定提交的差异,根据您的情况修改管道。
推荐文章
- 为什么git-rebase给了我合并冲突,而我所做的只是压缩提交?
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 跟踪所有远程git分支作为本地分支
- 自定义SSH端口上的Git
- git如何显示不存在于.gitignore中的未跟踪文件