加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 在Git中显示的幻影本地更改

发布时间:2020-12-14 05:42:56 所属栏目:Windows 来源:网络整理
导读:我有一个非常奇怪的git错误,让我完全不知所措.这不是一个主要的阻碍者,但是一直在努力工作是非常恼人的. 我有一个存储库的工作副本,并且在所述工作副本中,每次我从一个分支切换到另一个分支时,Git告诉我,在切换完成后,我有本地修改.更多细节: 这是在Windows
我有一个非常奇怪的git错误,让我完全不知所措.这不是一个主要的阻碍者,但是一直在努力工作是非常恼人的.

我有一个存储库的工作副本,并且在所述工作副本中,每次我从一个分支切换到另一个分支时,Git告诉我,在切换完成后,我有本地修改.更多细节:

>这是在Windows上
> Git状态显示文件已更改(每行更改,请参阅附带的屏幕截图示例)
>超越比较显示没有差异;文件编码和行结尾是相同的,两个文件完全相同的字节数.
>奇怪的是:我无法重置这些变化,无论它们是什么.即使删除文件,然后重置删除,也会产生一个应该更改的新文件.

这可能会发生什么?我认为它可能与文件属性有关,但我不知道如何检查它.

更新:
VonC是正确的,这是问题的线路结束.更具体地说,如果您将core.autocrlf设置为true,但是存储库中先前使用Windows行结尾提交的任何文件,那么您将看到此问题.无法重置更改的原因是签出文件会修改它,因为Git确定文件的工作副本与现在提交时的外观不同.令我感到困惑,我知道.

无论如何,我能够通过一个巨大的提交来解决这个问题,这个提交将存储库中的所有行结尾设置为Unix,幸运的是,结果并没有像你想象的那么大.我按照这篇文章中的说明:Trying to fix line-endings with git filter-branch,but having no luck,特别是Russ Egan的答案,这对我来说效果最好.

解决方法

只需确保在下次结账前输入(一次):

git config --global core.autocrlf false

这将避免这种设置(默认情况下使用msysgit设置为true)的自动eol(行尾)转换.
.gitattributes文件是一个更好的地方来声明你想要管理eol的文件.

有关该设置的更多信息,请参阅“git replacing LF with CRLF”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读