无论用户的环境或core.autocrlf
的设置如何,我都希望强制我的repo始终使用windows行结尾。我读过关于使用.gitattributes
设置行尾的文章,但还没能做到这一点。我的.gitattributes
文件如下所示:
* text=auto
* text eol=crlf
添加此文件后,我运行git add --renormalize .
和git add .gitattributes
,然后推送到远程。但是,这并没有覆盖我的全局core.autocrlf
设置。我想要的是将我的windows行尾推送到Bitbucket,但我得到的是Bitbucket中的linux行尾。
如何强制我的git客户端推送特定repo的Windows行结尾,而不管用户对core.autocrlf
的设置如何?
首先,您有两个冲突的设置。CCD_ 8和CCD_ 9不兼容。你需要选择一个。
然而,我很遗憾,两人都不会做你想做的事。Git没有"在存储库中始终转换为CR/LF"的选项。您唯一的选项控制进入工作目录的内容。
例如,* text eol=crlf
会将Windows样式行结尾放在工作目录中,但会将Unix样式行放在存储库中。
您可以使用* -text
完全禁用行尾配置,但这只会停止进行文本转换,并按磁盘上的实际情况签入文件。它并没有消除Unix用户用Unix风格的行结尾重写文件的可能性。
我鼓励您忽略存储库中存在的文件的内容,转而关注工作目录中的内容。如果您总是想在磁盘上使用CR/LF,请使用* text eol=crlf
。