如何让 Git 将 CRLF 存储在索引中

问题描述 投票:0回答:2

我在工作中使用

git-svn
,人们不断抱怨我犯了
LF
而不是
CRLF
。 (我们主要是一家 Windows 商店)。

据我所知,当

core.autocrlf
true
时,工作副本是
CRLF
,当
false
时,它是
LF
,当
input
时,它保持不变。我喜欢
autocrlf = true
作为一个概念,但我希望它在索引中默认为
CRLF
,因为这就是 get 致力于 SVN 的内容。

有没有办法设置索引使用哪一行结尾?

我见过

core.eol
,但这似乎也只设置了工作副本使用的内容,而不是索引。

windows git newline git-svn
2个回答
2
投票

您需要将名为

.gitattributes
的文件添加到项目的根目录中。这将迫使每个人都提交相同的行结尾。在您的情况下,当您想要强制
crlf
时,您将在
.gitattributes
:

中添加此行
* text eol=crlf

然后,您还可以规范化存储库中的每个文件一次,而不必再担心它:尝试使用 git filter-branch 修复行结尾,但没有运气

您也可以参考 github 行尾指南:https://help.github.com/articles/dealing-with-line-endings


2
投票

我知道这个问题很旧,但以防万一有人仍在寻找答案......

首先,您必须确保全局和本地配置中的

core.autocrlf
false
。 然后要强制 git 转换为 CRLF,您可以使用如下定义的 filter :

在您本地的

config
文件 (.gi
© www.soinside.com 2019 - 2024. All rights reserved.