【问题标题】:git: always force windows line endings for repogit:总是强制 repo 的 windows 行结尾
【发布时间】:2020-04-01 20:52:49
【问题描述】:

我想强制我的 repo 始终使用 windows 行尾,无论用户的环境或 core.autocrlf 的设置如何。我已经阅读了有关使用 .gitattributes 设置行尾的信息,但无法做到这一点。我的.gitattributes 文件如下所示:

* text=auto
* text eol=crlf

添加此文件后,我运行git add --renormalize . 和git add .gitattributes,然后推送到远程。但是,这并没有覆盖我的全局 core.autocrlf 设置。我想要的是将我的 windows 行尾推送到 Bitbucket,但我得到的是 Bitbucket 中的 linux 行尾。

无论用户对core.autocrlf 的设置如何,如何强制我的 git 客户端推送特定 repo 的 Windows 行尾?

【问题讨论】:

    标签: git line-endings core.autocrlf


    【解决方案1】:

    首先,您有两个相互冲突的设置。 * text=auto 和 * text eol=crlf 不兼容。你需要选择一个。

    但是,我很遗憾两者都不会按照您的意愿行事。 Git 没有“始终在存储库中转换为 CR/LF”的选项。您唯一的选项控制进入工作目录的内容。

    例如,* text eol=crlf 会将 Windows 样式的行尾 放在工作目录中,但会将 Unix 样式的行放在存储库中。

    您可以使用* -text 完全禁用行尾配置,但这只会停止进行文本转换并按原样签入文件,因为它存在于磁盘上。它不会消除 Unix 用户使用 Unix 风格的行结尾重写文件的可能性。

    我鼓励您忽略存储库中存在的文件的内容,而专注于工作目录中您想要的内容。如果您总是希望在磁盘上使用 CR/LF,请使用 * text eol=crlf。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 1970-01-01
      • 2020-10-16
      • 2018-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多