如何在更改git存储库的autoclrf设置后修复签出文件中的行结尾?

Dan*_*gby 3 git line-endings msysgit

我在Windows上克隆了一个git存储库,注意到行结尾设置为UNIX样式(LF).

为了解决这个问题,我将存储库的autocrlf值更改为true(core.autocrlf=true).

但是,我在磁盘上的所有签出文件仍然具有UNIX样式(LF)行返回.我该如何解决这些问题?

Dan*_*gby 7

警告:执行以下命令将导致丢失任何未提交的更改.

要修复已签出文件的行结尾,您需要发出两个命令:

  1. git rm --cached -r . 这将从git的索引中删除所有内容.
  2. git reset --hard HEAD 这会重置所有本地更改.

如果您有待更改,则任务变得更加困难.

您可以使用msysgit附带的dos2unix命令尝试修复以及您尝试提交的文件的行结尾.

一旦设法提交了需要保留的任何更改,就可以使用上面提到的两个命令来重置存储库中所有文件的行结尾.

  • 警告:msysgit(从1.4.8版开始)随附的dos2unix命令具有非标准的行为(IMO乱七八糟的习惯):它不会强制UNIX换行符,而是_toggles_ DOS <-> UNIX。要强制使用UNIX,必须使用(非标准)“-d2u”选项。 (2认同)