我正在一台Windows和一台用作gitlab运行程序的GNU / Linux机器上克隆存储库。跑步者的工作开始时,代码已经签出。
我需要这些文件在两个平台上具有相同的行尾。这是conan的要求:一些文件将被上传,并且它们的校验和必须匹配,因此它们必须使用相同的行尾字符约定。因此,让我们到处使用LF。
我的问题是我无法控制克隆的完成方式。我可以设置一些gitlab-ci变量来控制克隆的完成方式,例如GIT_SUBMODULE_STRATEGY等,但没有控制行的结尾。因此,完成克隆后,我需要找到一种干净的方法来更改整个存储库+子模块的行尾。
显而易见的答案是使用git config --global core.crlf false
,但存在一些问题:
由于1
,我在git config core.crlf false
周围做了一些尝试(没有--global
),但问题2
仍然存在。还有一个问题3
:
我试图解决的问题2
:
git reset --hard
在更改autocrlf
后不会更改行尾。git checkout .
在更改autocrlf
之后会更改它们,但并非总是如此(在主存储库上工作,在子模块内不工作)因此,我正在寻找一种从已经克隆的存储库中获取LF行结尾的方法,并且该方法可用于子模块。