微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有 LF 行结尾的 Git 结帐文件

如何解决带有 LF 行结尾的 Git 结帐文件

PSR-12 用于 PHPAirbnb's ESLint config for React 需要 LF 行尾超过 CRLF。我在 ESLint 文档中看到它们 recommend adding a .gitattributes file内容与此类似:

*.js text eol=lf

我查看了 Git 文档,它提到使用 eol 会使路径被认为是脏的。这是什么意思?我还注意到文档后面提到了 core.safecrlf,那么这些类型的转换会导致不可逆转的问题吗?

我还需要set core.autocrlf to false so that .gitattributes takes effect吗?

解决方法

当您在 Git 中以 text 模式设置文件时,这会告诉 Git 您希望它执行行尾转换。这意味着 Git 将始终以 LF 结尾将文件写入其内部存储,然后检查指定的结尾,无论是由于 .gitattributes 还是各种配置选项。

但是,如果存储库已经包含签入了 CRLF 行结尾的文件,那么设置 eol 选项将导致文件以 LF 结尾签入到存储库中,如上所述。这将使 Git 认为文件已被修改,确实如此。这就是让“被认为是肮脏的路径”的意思。

解决这个问题最简单的方法是将条目添加到.gitattributes,添加.gitattributes文件,然后运行git add --renormalize .然后提交。这样,任何具有 CRLF 结尾的文件都将在存储库中转换为 LF 结尾。

您也不需要另外设置 core.autocrlf。该行为被 .gitattributes 文件覆盖。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。