Qwe*_*rty 11 git line-endings editorconfig git-for-windows
我们的存储库使用LF
,我的 Windows 版 Git 安装按原样使用 Checkout,提交 Unix 风格的行结尾,
但我在 IDE 中签出的每个文件中仍然会遇到错误,因为它仍然会CRLF
一直接收,即使它确实支持并配置为通过签入文件(或在其自己的设置中)LF
使用。:LF
.editorconfig
.editorconfig
root = true
[*]
end_of_line = lf
Run Code Online (Sandbox Code Playgroud)
现在已经是 2020 年了,IDE 和工具已经支持
LF
Windows,那么我怎样才能拥有这些好东西呢?
Qwe*_*rty 21
有两个 git config 属性会影响行结尾:core.autocrlf
和core.eol
。
以前,您被告知要使用它core.autocrlf = true
才能处理跨平台项目,但true
现在不再是这样了。
如果您的系统/IDE/工具支持LF
,并且您确实希望LF
像团队中的其他人一样使用而不进行任何静默lf->crlf->lf
标准化,则必须关闭autocrlf
并配置eol
为不推断native
行结尾,而是强制它使用lf
.
LF
在你的所有文件中实现a/o repos:.gitattributes
。我个人建议对所有本地存储库都使用两者,并确保跨平台、跨开发的一致性。
在您的工作目录(您的本地存储库)中:
首先提交一切
让我们偏执一点,在全局和仓库中都设置它。万一。
git config --global core.eol lf
git config --global core.autocrlf false
git config core.eol lf
git config core.autocrlf false
Run Code Online (Sandbox Code Playgroud)
删除除 之外的所有“代码” .git
。
您还可以省略依赖项、已安装的文件(例如node_modules
)、构建文件以及任何git 忽略的文件。
最后运行
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)
现在应该可以正常工作了。新检查的文件应遵循新配置并保留从远程存储库克隆的所有行结尾。
请注意,如果您的远程存储库使用混合crlf
lf
结尾,您还必须运行并推送
git add --renormalize .
Run Code Online (Sandbox Code Playgroud)
.gitattributes
2) 通过签入文件的每个存储库在您的工作目录(您的本地存储库)中:
.gitattributes
在根目录中创建包含以下内容的文件:
* text=auto eol=lf
Run Code Online (Sandbox Code Playgroud)
提交文件(以及其他所有内容)
与上面相同
与上面相同
重要提示:将文件引入存储库后,仍然拥有旧 CRLF 文件的每个人都必须执行步骤 3 和 4 来更新其工作目录,因为仅检查提交不会影响已存在的文件。
设置core.autocrlf
为true
或input
覆盖core.eol
https://www.git-scm.com/docs/git-config#Documentation/git-config.txt-coreautocrlf
core.autocrlf = input
是 UNIX 系统上的首选值。
/sf/answers/2889766281/
/sf/answers/309780341/
使用第三个选项重新安装适用于 Windows 的 git(如 Q 中的屏幕截图所示)
按原样结账 - 按原样提交 (
core.autocrlf = false
)
归档时间: |
|
查看次数: |
12545 次 |
最近记录: |