乐趣区

gitattributes中exportignore属性

下面是某个项目的 .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

退出移动版