Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GIT-许多文件显示为正在修改,而实际上只有2个文件被修改_Git_Bitbucket - Fatal编程技术网

GIT-许多文件显示为正在修改,而实际上只有2个文件被修改

GIT-许多文件显示为正在修改,而实际上只有2个文件被修改,git,bitbucket,Git,Bitbucket,我在WindowsVista机器上本地维护了一个PHP脚本的Git存储库,并将PHP脚本上传到服务器上。对服务器上的脚本进行了一些更改;仅修改了1或2个文件 我将所有脚本下载回我的Windows机器,现在当我运行git status时,它会显示所有文件(大约2500个)正在修改 在将文件上载到服务器之前,我有以下git配置 core.autocrlf=true 我变了 git config --replace-all --global core.filemode false 同样,所有文件仍

我在WindowsVista机器上本地维护了一个PHP脚本的Git存储库,并将PHP脚本上传到服务器上。对服务器上的脚本进行了一些更改;仅修改了1或2个文件

我将所有脚本下载回我的Windows机器,现在当我运行
git status
时,它会显示所有文件(大约2500个)正在修改

在将文件上载到服务器之前,我有以下git配置

core.autocrlf=true
我变了

git config --replace-all --global core.filemode false
同样,所有文件仍显示为正在修改


我有一个旧回购协议和文件的压缩包。谁能告诉我从这里开始的步骤吗?

运行
git diff

如果没有看到任何实际的代码更改,则可以假定这是由文件属性更改引起的(可能是
mtime
?)。此时,您可以运行
git checkout-f
,这将撤消对这些文件所做的所有无任何“更改”


如果
git diff
显示实际更改,则不要运行
git checkout-f

这些文件是否位于嵌套很深的文件夹中(这会使它们具有很长的路径字符串)?这与回购协议的根源无关。我说的是以驱动器号开始的绝对文件路径字符串。Windows对路径字符串大小有严格限制,这可能会使Git for Windows变得混乱。通过在Cygwin提示符下使用和安装/使用Git(以便它不使用Windows Git),我很幸运地解决了这个问题,这可能是对文件路径字符串使用了更灵活的Linux实现。@ajp15243不,它们嵌套在下面的最多2个目录中,文件名和目录名都很短。我正在使用。我的windows机器中有这么多存储库,所以切换到是唯一的解决方案?@Shanthi如果你想咬紧牙关,将文件中的所有行尾正常化,以避免将来的麻烦,我建议查看本文中建议的选定答案。@miqid感谢我尝试的链接
#从存储库的根目录中删除索引git rm--cached-r中的所有内容。#更改存储库的autocrlf设置(您可能希望在windows上使用true):git config core.autocrlf input#将所有删除的文件重新添加到索引#(您应该会收到很多消息,如:#警告:CRLF将被LF in替换。)git diff--cached--name only-z | xargs-0 git add#Commit Commit-m“修复了CRLF问题”
然后下载更改的脚本,然后运行
git状态
,所有文件显示为已修改。请帮助执行
git diff