如何更改行结束设置
有没有一个文件或菜单,让我改变设置如何处理行尾?
有3个选项:
-
结帐Windows风格,提交Unix风格
在检出文本文件时,Git会将LF转换为CRLF。 提交文本文件时,CRLF将被转换为LF。 对于跨平台项目,这是Windows上推荐的设置(“core.autocrlf”设置为“true”)
-
按原样签出,提交Unix风格
在检出文本文件时,Git不会执行任何转换。 提交文本文件时,CRLF将被转换为LF。 对于跨平台项目,这是Unix上推荐的设置(“core.autocrlf”设置为“input”)。
-
按原样签出,按原样提交
在检出或提交文本文件时,Git不会执行任何转换。 不build议跨平台项目select此选项(“core.autocrlf”设置为“false”)
正常的方法来控制这是使用git config
例如
git config –global core.autocrlf true
有关详细信息,请将此链接向下滚动到Pro Git到名为“core.autocrlf”的部分
如果你想知道这个文件保存在哪里,你可以运行命令:
git config –global – 编辑
和git全局configuration文件应该在文本编辑器中打开,你可以看到从哪里加载文件。
在OS中使用的行结尾格式
- Windows:
CR
(回车\r
)和LF
(LineFeed\n
)对 - OSX,Linux:
LF
(LineFeed\n
)
我们可以configurationgit以两种方式为每个操作系统自动更正行结束格式。
- Git全局configuration
- 使用
.gitattributes
文件
全局configuration
在Linux / OSX中
git config --global core.autocrlf input
这将在您提交时将任何CRLF
修复为LF
。
在Windows中
git config --global core.autocrlf true
这将确保当你在窗口结帐时,所有LF
将转换为CRLF
.gitattributes文件
保留.gitattributes
文件是一个好主意,因为我们不希望我们团队中的每个人都设置它们的configuration。 这个文件应该保持在回购的根path,如果存在一个,git会尊重它。
* text=auto
这会将所有文件视为文本文件,并在结帐时将其转换为操作系统行结束,并自动返回LF
。 如果想明确告诉,那么使用
* text eol=crlf * text eol=lf
第一个是结帐,第二个是提交。
*.jpg binary
将所有.jpg
图像视为二进制文件。 所以不需要转换
对于可以重新分配给所有开发人员的存储库设置解决scheme,请查看.gitattributes文件中的text属性。 这样,开发人员就不必手动在存储库上设置自己的行结尾,而且由于不同的存储库可能有不同的行结束风格,全球core.autocrlf不是最好的,至less在我看来。
例如,在给定path上取消设置此属性[ 。 – 文本]将强制git不要触摸行结束时签入和签出。 在我看来,这是最好的行为,因为大多数现代文本编辑可以处理这两种types的行结束。 另外,如果您作为开发人员仍然希望在签入时执行换行转换,则仍然可以设置path以匹配某些文件,或者在存储库中设置eol属性(在.gitattributes中)。
还要看看这个相关的post,它更详细地描述了.gitattributes文件和文本属性: 使用Git,最好的CRLF(回车,换行符)处理策略是什么?
如果您想要将已经更改为UNIX格式的文件格式从PC格式转换回来。
(1)您需要重新安装乌龟GIT,并在“结束转换”部分确保您select了“按原样检查 – 按原样检查”选项。
(2)并保持原来的状态。
(3)一旦安装完成
(4)将所有转换为UNIX格式的文件扩展名写入文本文件(extensions.txt)。
ex:*.dsp *.dsw
(5)将文件复制到克隆中在GITBASH中运行以下命令
while read -ra; do find . -type f -name "$a" -exec dos2unix {} \; done<extension.txt