我正在用git追踪一个项目。工作副本中有一些Xcode项目文件,我想继续跟踪,但不想在Diffs中看到,因为总有几十行更改的行是我从未感兴趣的。有没有简单的方法git-diff
跳过这些文件?我尝试设置一个自定义的“静默”diff工具:
$ cat .gitattributes
Project.xcodeproj/* diff=nodiff
$ cat ~/.gitconfig
[diff "nodiff"]
command = /bin/true
但是:
$ git diff
external diff died, stopping at Project.xcodeproj/zoul.mode1v3.
我做错了什么?
发布于 2018-04-04 13:46:15
问题是/bin/true
将立即返回,而不读取其输入。git diff
因此,相当合理地认为,它已经过早地死去了。
你真正想做的是取消diff属性,而不是将其设置为伪命令。试试这个.gitattributes
:
Project.xcodeproj/* -diff
发布于 2018-04-04 14:36:54
另一种不需要任何外部工具而产生干净输出的解决方案(添加到.git/config
*
[alias]
mydiff = !git diff -- $(git diff --name-only | grep -Ev "Project.xcodeproj/")
然后运行它:
git mydiff
注意:git diff --name-only
比git ls-files
因为它会将一个较短的文件列表传递给git diff
,因为只包含修改过的文件。在大型项目中,我遇到了超过最大参数数的麻烦。git ls-files
。
https://stackoverflow.com/questions/-100007958
复制相似问题