下面是某个项目的 .gitattributes 文件内容
* text=auto
/tests export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.scrutinizer.yml export-ignore
.travis.yml export-ignore
phpunit.php export-ignore
phpunit.xml.dist export-ignore
phpunit.xml export-ignore
.php_cs
从中可以看到 export-ignore
属性,它是做什么用的呢?
适用场景如下:
当你的项目是作为一个扩展发布在 packagist.orgs 上的时候,或许使用者需要的只是你的 src 文件夹和 composer.json 文件,而不需要其他的一些文件,它的作用就是会忽略这些文件。
举个例子:
当使用 composer 安装你的软件包 (扩展包) 的时候, --prefer-dist
会从 github 或 cvs 下载一个 zip 包,并将其解压缩。
使用 .gitattributes
文件,可以通过添加 export-ignore
属性来忽略不需要下载的文件。
比如以下配置:
# .gitattributes
.travis.yml export-ignore
在使用 composer 安装扩展的时候,.travis.yml 文件是不会下载下来的。
注意⚠️:
Composer 缺少对 ”dist” 的 Gitlab 支持,因此目前这对 Gitlab 不起作用。但是,它适用于 Github 和 Bitbucket
参考:
Use gitattributes to keep your tests out of other people’s production
I don’t need your tests in my production