CocosCreator
在Mac工作环境的开发的项目在Windows环境打开后CocosCreator
生成的配置文件后缀为meta的文件全部都会冲突,在团队开发环境不同的情况下,会有很大困扰,如何解决呢?接下来就说说如何解决以及相关信息,并且加深拓展理解一些信息。
具体步骤
问题描述
MAC OS下只有回车,windows下有回车换行,提交git时显示不一样。
问题分析
在不同操作系统中,换行符并不统一,Linux 系统中使用 0x0A(LF)
, windows 系统中使用 0x0D0A(CRLF)
, 而 MAC OS 系统起初使用0x0D(CR)
后来和 Linux 系统保持一致。而 git 默认采用 Linux 的换行符(当然这一点并不奇怪)。
git 为了解决不同平台换行符不一致的问题,在 windows 操作系统中默认在检出代码时将 LF
转换为 CRLF
,而在提交的时候再转换为 LF
,但是看似完美的解决方案在中文环境中却失效了。
git 全局参数
git 中有三个参数于换行符有关:
eol
: 设置工作目录中文件的换行符,有三个值LF
,CRLF
和native
(默认,同操作系统)autocrlf
:true
表示检出是转换CRLF
, 提交时转换为LF
input
表示检出是不转换,提交时转换为LF
false
表示不做转换
safecrlf
true
表示不允许提交时包含不同换行符warn
则只在有不同换行符时警告false
则允许提价时有不同换行符存在
git设置配置项:
1 | # 拒绝提交包含混合换行符的文件 |
1 | # 提交时转换为LF,检出时转换为CRLF |
解决方法
方案一
1 | git config --global core.safecrlf true |
原因一:需要始终保证文件内容没有包含混合的换行符
原因二:这里服从多数情况,所以检出时我不转换,但提交要变成LF
方案二
1 | <!--统一换行符为 lf--> |
加强团队配置
增加配置文件 .gitattributes
虽然通过设置了 git 全局参数解决了问题,但是作为团队协作的话,并不能保证所有人都正确配好了。git 提供了.gitattributes
文件解决了这个问题。在项目根目录新建.gitattributes
文件,添加一下内容:
1 | # Set the default behavior, in case people don't have core.autocrlf set. |
通过这种方式避免有人没有设置 core.autocrlf
参数,并且将该文件加入版本控制中。
另外根据需要 .gitattributes
文件可以在项目不同目录中创建,而一些非文本文件可以设置为二进制文件,不用考虑换行符问题。
参考
--- 本文结束 The End ---