【问题标题】:Git renormalise not working on an old repoGit 重新规范化不适用于旧的回购协议
【发布时间】:2023-01-30 05:51:38
【问题描述】:

我继承了一个在 Windows 上开发并一直托管在 Windows 上的存储库。从历史上看,autocrlf 已被禁用,因此我们的主仓库将以 crlf 行结尾。

但是,我们正在转向更多的跨平台情况,因此我们希望启用autocrlf

我试过运行git add --renormalise .as per these answers但是当我尝试提交它时,没有任何变化,大概是因为它们已经是 CRLF 而我在 Windows 上,所以我无法推动它重新规范化遥控器。

我该怎么做呢?我是否需要在 Unix 机器上检查它然后进行推送?

【问题讨论】:

  • 你有.gitattributes (git-scm.com/docs/gitattributes) 文件吗?我不是 100% 确定它是必需的,但也许这是一些线索。
  • 我们还没有,我们计划在我们在分支上重新规范化并检查一切正常后添加它
  • 我不是这方面的专家,但我会做的是添加.gitattributes,其中所有文本文件都被明确说明,这样 git 就知道要重新规范化哪些文件。然后提交文件然后git add --renormalise .。我不知道是否所有步骤都是必要的,但我知道完整的程序对我来说总是有效的。
  • @PiotrSiupa - 我会试试,明天给你回复:)谢谢你我的朋友

标签: git core.autocrlf


【解决方案1】:

我提到的 git add --renormalize . Git 2.16+ (Q1 2018) 与 git config 和 .gitattributes 协同工作

添加并提交 .gitattributes

*.txt text eol=lf

然后添加(使用 renormalize 选项),并在需要时提交。

克隆该存储库(其中包含 .gitattributes 指令)将导致 .txt 文件保持一致的 EOL(此处为 LF)。
由于大多数 Windows IDE/编辑器都知道如何保留 LF,这样更便于跨平台开发。

【讨论】:

    猜你喜欢
    • 2021-05-29
    • 2021-12-31
    • 1970-01-01
    • 2015-03-29
    • 2019-06-21
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多