【问题标题】:How to fix the line endings in checked out files after changing the autoclrf setting for a git repository?更改 git 存储库的 autoclrf 设置后,如何修复签出文件中的行尾?
【发布时间】:2012-04-12 06:14:47
【问题描述】:

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

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

但是,我在磁盘上的所有签出文件仍然具有 UNIX 样式 (LF) 换行符。我该如何解决?

【问题讨论】:

    标签: git msysgit line-endings


    【解决方案1】:

    警告:执行以下命令将导致您丢失所有未提交的更改。

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

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

    如果您有待处理的更改,任务会变得更加困难。

    您可以使用 msysgit 附带的dos2unix 命令来尝试修复和尝试提交的文件的行尾。

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

    【讨论】:

    • 警告:msysgit 附带的 dos2unix 命令(从 1.4.8 开始)具有非标准(IMO 危险和愚蠢)行为:它不强制 UNIX 换行,而是 切换 DOS UNIX。要强制 UNIX,您必须使用(非标准)--d2u 选项。
    猜你喜欢
    • 2014-03-16
    • 1970-01-01
    • 2015-02-24
    • 2016-07-08
    • 2010-10-19
    • 2011-02-21
    • 2013-10-30
    • 2013-09-11
    • 1970-01-01
    相关资源
    最近更新 更多