4

我刚刚创建了一个新的 Laravel 项目,并且正在设置我的.gitattributes语言学家属性。问题是,我不确定要为哪些文件/目录设置哪些。

默认.gitattributes文件如下所示:

* text=auto
*.css linguist-vendored
*.scss linguist-vendored
*.js linguist-vendored
CHANGELOG.md export-ignore

首先,为什么 all.css.scssfiles.js都设置为linguist-vendored?这不仅会从 Linguist 中排除所有此类用户创建的文件,而且 Laravel 也分别只有 1、2 和 4 个这些文件,这将如何显着影响 Linguist 统计数据?

其次,是否有关于哪些文件应标记为的约定/标准linguist-vendored?我应该标记所有 Laravel 文件,只标记我不修改的文件,只标记vendor目录,还是根本不标记?或者甚至是别的东西?

提前致谢 !

4

1 回答 1

6

首先,为什么 all.css.scssfiles.js都设置为linguist-vendored

据我了解阅读关于提交e3630a593876d6的评论,作者希望确保 Laravel 项目被标记为 PHP(GitHub 使用语言统计中的第一语言标记项目)。

这不仅会从 Linguist 中排除所有此类用户创建的文件,而且 Laravel 也分别只有 1、2 和 4 个这些文件,这将如何显着影响 Linguist 统计数据?

在 Linguist 中,语言统计数据来自每种语言的文件大小(您可以阅读我关于Linguist 如何工作的回答以获取更多详细信息)。因此,单个大文件可以更改语言统计信息

在 Laravel 的案例中,如果我删除 Linguist 覆盖并在存储库上再次运行 Linguist,我会得到以下统计信息:

94.11%  PHP
3.30%   HTML
1.42%   JavaScript
0.68%   Vue
0.49%   CSS

因此,无需使用 Linguist 覆盖将存储库标记为 PHP。但是,添加覆盖时可能会有更大的文件。

请注意,Laravel 存储库包含两个大的缩小文件。Linguist 识别出已缩小并将它们标记为已生成,从而自动将它们排除在统计数据之外。

其次,是否有关于哪些文件应标记为的约定/标准linguist-vendored?我应该标记所有 Laravel 文件,只标记我不修改的文件,只标记vendor目录,还是根本不标记?或者甚至是别的什么?

这完全取决于你;据我所知,没有关于什么是 vendored code 的约定

在 Linguist 中,我们尝试将所有可能影响统计信息但不是由存储库所有者编写的第三方代码标记为已售出。不过,您可以使用覆盖来更改默认行为。

于 2018-06-02T07:58:42.553 回答