【问题标题】:git force file line ending on commitgit force 以提交结束的文件行
【发布时间】:2023-03-05 02:00:02
【问题描述】:

我们有一个多平台项目,它为几个平台生成二进制文件,比如 mac、windows、linux... 是否可以强制 git 将所有文件的编码更改为某个特定平台(例如:Linux)。那么每次用户提交或推送到远程存储库时如何更改文件的行尾呢?

【问题讨论】:

  • 为什么要更改二进制文件的编码?编码不适用于二进制文件,仅适用于文本文件。
  • 不适用于二进制文件,但我们有配置文件...我想强制
  • 对我们来说,二进制永远不会在 git 存储库中。
  • 你说的是行尾还是编码(比如 UTF-8)?
  • 你看过core.autocrlf的设置了吗?

标签: git


【解决方案1】:

我猜你应该使用git hook,检查这个脚本:Git companion scripts by yaegashi

【讨论】:

    【解决方案2】:

    我建议在.gitattributes file 中设置core.eol 指令,而不是依赖像core.autocrlf 这样的全局配置。

    core.eol
    

    为设置了 text 属性的文件设置要在工作目录中使用的行结束类型。
    替代方案是 lfcrlfnative,它们使用平台的本机行尾。
    默认值为原生。
    有关行尾转换的更多信息,请参阅gitattributes(5)

    【讨论】:

      猜你喜欢
      • 2017-10-04
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 1970-01-01
      • 2019-01-17
      相关资源
      最近更新 更多