Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 规范化时,为什么带有CRLF的文件不能添加到索引中?_Git - Fatal编程技术网

Git 规范化时,为什么带有CRLF的文件不能添加到索引中?

Git 规范化时,为什么带有CRLF的文件不能添加到索引中?,git,Git,因此,我一直在按照各种页面的说明进行操作,这些页面涵盖了行尾规范化 .gittributes包含以下内容,并且已提交 * text=auto core.autocrlf = input core.eol unset (defaults to native) 我的目标是规范化存储库中的所有文本文件,以便它们只包含LF,将来的签入也会这样做 我发现我的工作区域中存在的文件(这是在删除工作文件并执行git重置--hard)包含CRLF,但当我执行“git status”时,它们没有列出 我可以签

因此,我一直在按照各种页面的说明进行操作,这些页面涵盖了行尾规范化

.gittributes包含以下内容,并且已提交

* text=auto

core.autocrlf = input

core.eol unset (defaults to native)
我的目标是规范化存储库中的所有文本文件,以便它们只包含LF,将来的签入也会这样做

我发现我的工作区域中存在的文件(这是在删除工作文件并执行
git重置--hard
)包含CRLF,但当我执行“git status”时,它们没有列出

我可以签出另一个分支,然后返回到该分支,有时(这是非常不一致的)该文件会被列为应该提交的内容

* text=auto

core.autocrlf = input

core.eol unset (defaults to native)
它变得更有趣

在我提交git记录为将CRLF转换为LF的所有文件后,签出另一个分支,然后再次签出第一个分支,并通过
get status
列出一组全新的文件,表明它们也有将标准化为LF的CRLF。为什么这些不是第一次被抓到的

在签出时,文件似乎通过CR泄漏,并且没有标记为需要提交(有时)

我错过什么了吗?(或者,更确切地说,我遗漏了什么?)


在Mac OS X上使用git 1.8.3.2

首先,这是您的
.gittributes
文件中所需的全部内容,您不需要任何其他内容:
*text=auto
。第二,你试过中的说明了吗?在我的原始帖子中,格式设置是关闭的-在.gittattributes中唯一的内容是“*text=auto”。core.autocrlf和core.eol是我的配置设置。是的,我一直在遵循你提到的指示。基本上,我希望只运行一次,所有受影响的文件都将包含在第一轮中。我看到的是,我可以返回到相同的代码,再次运行它,并获得a)另一组要提交的文件,或者b)我发现仍然有回车符的文件没有标记为需要提交。创建.gittributes文件、删除所有其他文件并运行“git reset--hard”后,“git status”检测到43个文件更改。如果我运行“grep-I-c-r$'\r'*| wc-l”,我会得到8589个包含回车的文本文件(主要是.java)。难道不是所有这些8589文件都显示为“git状态”的更改吗?