克隆git仓库后更改行结尾

时间:2018-07-06 15:11:55

标签: windows git gitlab-ci-runner conan

我正在一台Windows和一台用作gitlab运行程序的GNU / Linux机器上克隆存储库。跑步者的工作开始时,代码已经签出。

我需要这些文件在两个平台上具有相同的行尾。这是conan的要求:一些文件将被上传,并且它们的校验和必须匹配,因此它们必须使用相同的行尾字符约定。因此,让我们到处使用LF。

我的问题是我无法控制克隆的完成方式。我可以设置一些gitlab-ci变量来控制克隆的完成方式,例如GIT_SUBMODULE_STRATEGY等,但没有控制行的结尾。因此,完成克隆后,我需要找到一种干净的方法来更改整个存储库+子模块的行尾。

显而易见的答案是使用git config --global core.crlf false,但存在一些问题:

  1. 仅在构建柯南包时才存在行尾约束,所以我更希望在运行者构建其他东西时不要使用此全局
  2. 如果从运行任务中调用,它将无法工作(到那时代码已经被签出)

由于1,我在git config core.crlf false周围做了一些尝试(没有--global),但问题2仍然存在。还有一个问题3

  1. 它不适用于子模块

我试图解决的问题2

  • git reset --hard在更改autocrlf后不会更改行尾。
  • git checkout .在更改autocrlf之后会更改它们,但并非总是如此(在主存储库上工作,在子模块内不工作)

因此,我正在寻找一种从已经克隆的存储库中获取LF行结尾的方法,并且该方法可用于子模块。

0 个答案:

没有答案