Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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
Android Studio-基于Git的多平台项目的CRLF与LF_Android_Git_Android Studio_Core.autocrlf - Fatal编程技术网

Android Studio-基于Git的多平台项目的CRLF与LF

Android Studio-基于Git的多平台项目的CRLF与LF,android,git,android-studio,core.autocrlf,Android,Git,Android Studio,Core.autocrlf,我正在从事一个Android项目,涉及多个开发人员,其中一些人在Windows上,另一些人在Linux/MacOS上。由于我在Windows上,我被指示按如下方式配置Git以避免出现问题: autocrlf = true safecrlf = true 这基本上很好用。我在Android Studio中创建的任何.java/XML/etc文件都在CRLF中,当我将它们推送到repo中时会转换为LF,然后当我将更改拉到本地副本中时会转换回CRLF。问题是,出于某种原因,某些类型的文件(如向量可绘

我正在从事一个Android项目,涉及多个开发人员,其中一些人在Windows上,另一些人在Linux/MacOS上。由于我在Windows上,我被指示按如下方式配置Git以避免出现问题:

autocrlf = true
safecrlf = true
这基本上很好用。我在Android Studio中创建的任何.java/XML/etc文件都在CRLF中,当我将它们推送到repo中时会转换为LF,然后当我将更改拉到本地副本中时会转换回CRLF。问题是,出于某种原因,某些类型的文件(如向量可绘制资源)会在LF中生成。因此,当我尝试将它们添加到Git时,会出现“不可逆转换”错误:

我知道我可以设置
safecrlf=warn
,但据我所知,如果Git将二进制文件误认为是文本文件,这会带来损坏二进制文件的风险,因此我正在寻找更安全的解决方案。目前,我正在将向量资源手动编辑到CRLF中,然后再将它们添加到Git中,这避免了上面的错误消息,但对每个文件重复这个过程会变得很乏味。有没有办法强制Android Studio在CRLF中生成所有本地文件?

我不会将
core.autocrlf
设置为
true
(我建议):将其设置为false

要在中管理的任何文件,尤其是。见

组合已固定为等同于

使用
.gittributes
,您可以将eol转换限制为所需的精确文件集,而不是盲目地将其应用于所有repo文件。
请参阅“”中的更多内容


而且,
git add--renormalize。
允许转换所有相关文件eol。

对于像我这样正在搜索如何为Android Studio文件设置LF或CRLF的人,您可以在IDE的右下角更改此设置。单击“CRLF”并选择另一个选项。但我不知道如何在整个项目中做到这一点,不仅仅是每个文件


在Android Studio中,进入设置,菜单-文件/设置/编辑器/代码样式。
在这里您可以选择默认的行分隔符。

是否在
.gittributes
中标记为
文本
?请参阅所有文件,a
git add--renormalize。
可以帮助:查看上面我编辑的答案。@VonC,谢谢!我执行了这个命令,并更改了项目中的所有文本文件(git提供提交所有文本文件)。:)奇怪的是,我没有看到这个。只有git分支显示。
echo "*.java text=auto eol=crlf" >.gitattributes
$ git config core.autocrlf true