*.meta的Git提交的大量0行修改提示问题,建议引擎修改

在Windows下默认的Git配置,提交的时候,Git 把 .meta 的行尾修改成 Linux格式(\n),但是别人取后,Git又把它修改成Windows的\r\n,但是Cocos引擎扫描时又会把.meta修改成Linux(\n)格式,这时提交就说了大量*.meta出现0行修改的现象。

这个治标的办法,就是设置git检出检入不要修改换行格式
git config --global core.autocrlf false
git config --global core.safecrlf false
参考来源
Git 换行符自动转换问题,Git中的AutoCRLF与SafeCRLF换行符问题 - lsziri的专栏 - CSDN博客
https://blog.csdn.net/lsziri/article/details/64440902

这个治本的方法,就是Cocos引擎修改*.meta的时候,若原来*.meta存在,那么就要参考原来*.meta的换行是什么,如果linux的输出就用linux \n,如实windows的输出就用window \r\n,如是mac的就用mac \r的。

引擎开发人员也晓得这个事情的
https://docs.cocos.com/creator3d/manual/zh/asset/asset-workflow.html#svn-或-git-同步资源

(我就说个大致思路,细节只有引擎人员才能知道,例如当保证换行和现有物理文件一模一样的*.meta输出后,是否git还会提示?如果还会提示就别随便输出*.meta呗,除非*.meta新建或有实质修改)

3赞

表示关注

每次开了引擎再关闭 看到sourcetree 3000改动,壮观!

:joy: 我们尽快处理,这个先在本地设置一下 git 绕过一下~

git config --global core.autocrlf input

1赞

2020年了大哥

两个问题:
一个是 meta 文件的修改和识别,
一个是常规 ts 代码的修改和识别,

  • meta 文件的主要写入者是编辑器的 db ,根据之前 issue 已在 db 写入时做了处理,现在写入的换行符数据是正确的,那么问题就剩 git 比对的规则上,git 默认会采用系统换行符规则进行比对即 autocrlf = true,那么 window 和 mac 电脑切换编辑时就会有一堆的换行符变更。
    解决的办法:

    • 开发者自己执行 git config --global core.autocrlf input 把自己电脑的 git 全局配置给改为按 LF 换行符。
  • 在项目的 .git/config 文件中添加针对项目的

    [core]
        autocrlf = input
    
  • ts 脚本文件的换行符输入者主要是编辑器,使用什么编辑器,都是可以配置换行符的,比如 vscode


    把配置为改为

"files.eol": "\n",

下一个 v1.1 版本会处理新建项目里的这个问题

这个问题在3.0里还是时有出现,没有跨端编辑,主要是meta文件

还是换行符的问题吗,截图看下表现

2021年了大哥哥们

别催了别催了 在做了在做了

老弟你要说什么?这个问题解决了啊,要项目团队成员都定好换行符的约定,各类编辑器遵循 git 数据规则,而 git 遵循操作系统的规则,操作系统 window 和 mac 彼此的默认值就不一致,所以最终得在开发者终端约定好配置。只要有一个人本地的配置不一致,git 检验就会出现上述修改比对后的提示,提示无关数据修改,只是比对规则变了,这些都不是项目可控的,上述两个问题中我描述了情况和推荐了解决方案。
具体还有什么问题?

文件 map6_ColWall 变为 map6_colwall , 大写变小写,被识别为了新资源

好的。感谢。

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。