我的Git存储库有一个反复出现的问题.我在Windows中开发,我的生产站点在Linux下.有好几次,git显示所有被跟踪为修改过的文件.我认为这是因为Windows和Linux之间的混淆问题或冲突,但今天早上,当我检查Linux repo时,它显示所有文件都已修改.
为了增加对伤害的侮辱,我使用的两个Linux repos(1个用于prod,1个用于测试)显示相同.我别无选择,只能提交所有文件,因为硬重置或结账都没有对工作目录进行任何更改(是的,我非常喜欢这个).这是提交的结果:
Created commit #######: Git, you are so mean... 1521 files changed, 302856 insertions(+), 302856 deletions(-)
有关如何在下次发生时对其进行排序的任何想法?
正如Bombe所说,这听起来像是一个终结问题.我见过的最简单的讨论就是Github的这本指南.
您希望core.autocrlf
在Windows系统上进行设置,以便当您从repo签出到工作目录时Git会自动将行结尾更改为CRLF,并在将文件提交到repo时相反地将所有CRLF更改为LF:
$ git config --global core.autocrlf true
然后,您可以通过从Linux git reset
仓库克隆或通过克隆新的工作副本来确保您的仓库具有一致的行结尾,该副本将新的autocrlf设置应用于所有LF:
$ git reset --hard HEAD
编辑 - 如果Git无法将文件识别为二进制文件,则autocrlf
可以通过更改其认为是CRLF或LF的文件来破坏文件.如果您的repo包含不常见的二进制格式文件类型,请明确声明其转换类型.gitattributes
,如联机帮助页中所述.
听起来像一个行结束的问题.检查man git-config for core.autocrlf
.