【问题标题】:git - CRLF issue in windows + linux dual bootgit - windows + linux 双启动中的 CRLF 问题
【发布时间】:2018-01-17 19:25:51
【问题描述】:

我将用解决我问题的方法来回答我的问题。

反对者的注意事项:我知道根本原因已在其他各种线程中讨论(这就是我解决问题的方法)。这篇文章更多地是关于双引导系统如何导致你遇到这个问题。所以不,这个问题/答案不是重复的,而是一般问题类别的一个特定实例,在这个问题上向 SO 的存储库中添加了更多案例。


在家:我在 Linux 中编写代码。 LF 用作行尾
在办公室:我在 Windows 中编码。 CRLF 用作行尾。
默认情况下,git 的 autocrlf 功能 (https://stackoverflow.com/a/20653073/2715083) 让事情变得愉快。

但是,如果您在 Linux 和 Windows 上运行双启动系统,您可能会通过以下方式搞砸自己:

  1. git pull 您在 Windows 环境中的 linux 环境中处理的一些文件,位于可以从双引导 linux 环境访问的位置。这会修改文件以包含 CRLF 结尾。
  2. 那么当你在linux中打开文件时,默认只有LFgit diff会说整个文件被修改,因为每个LF都被更改为CRLF在每一行。 (我被 Atom 警告过,它内置了这个差异计数)

【问题讨论】:

  • 这些问题已经在herehere 和许多其他线程中讨论过了。如果您希望重新签出文件,here 是一种干净的解决方法。
  • @eis 请看我的编辑 :)
  • 我仍然认为这是重复的,例如已经回答了herehere
  • @eis 好酷。只要它对某人有帮助,重复并不重要。

标签: linux windows git core.autocrlf


【解决方案1】:

您在谈论 text=auto 部分?我不确定是否需要将其包含在新的 .gitattributes 文件中,因为当我这样做时,ATOM 仍将文件显示为已修改

是的,确实如此。
要强制 Git 应用 .gitattributes 指令,请参阅“Dealing with line endings”。

我首先要确保 core.autocrlf 设置为 false。

git config --global core.autocrlf false

然后:

git add . -u
git commit -m "Saving files before refreshing line endings"

rm .git/index

git reset

git status

git add -u
git add .gitattributes

git commit -m "Normalize all the line endings"

您也可以使用 , 来强制索引重新规范化:

git rm --cached -r .
git reset --hard

见“Force LF eol in git repo and working copy

* text=auto eol=lf

【讨论】:

  • 感谢详细步骤!通过强制所有行结尾为LF,是否会在CRLF 为标准的Windows 中造成任何问题?
  • @Somjit 这取决于文件类型和您的 IDE。您可以将* text=auto eol=lf 限制为*.xxx(某个扩展名)
  • 是的,我想大多数代码编辑器都会好的。感谢您指出自定义扩展模块。
【解决方案2】:

修复

  1. 删除/移动到其他位置的问题文件/文件夹
  2. git checkout <hash> <your/files/location>

其中<hash> 是最后一次好的提交,your/files/location 是您想要解决 CRLF 问题的文件的位置。这基本上将从您的本地 .git 存储库中恢复旧版本。

为我工作。


如果您知道我遗漏了什么或解释不正确,请告诉我

【讨论】:

  • 您正在规避问题。要真正修复它,请使用“.gitattributes”文件
  • @Philippe 你说的是text=auto 部分?我不确定是否需要将其包含在新的 .gitattributes 文件中,因为当我这样做时,ATOM 仍将文件显示为已修改...
猜你喜欢
  • 1970-01-01
  • 2014-10-30
  • 2020-10-16
  • 2015-04-23
  • 2012-07-17
  • 2023-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多