Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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
从windows和linux访问时,共享目录repo上的git状态不同_Git - Fatal编程技术网

从windows和linux访问时,共享目录repo上的git状态不同

从windows和linux访问时,共享目录repo上的git状态不同,git,Git,该场景是在IBMi服务器上有一个git存储库(带有一个工作文件夹)。该文件夹已共享到Windows计算机。该文件夹中的代码是在Windows计算机上创建的,但存储库和初始签入是通过服务器上的git完成的。(该服务器上的git客户端本质上是linux版本) 现在,当我从服务器上的git客户端查看git状态时,工作目录显示为没有更改。但是,如果我在我的Windows机器上使用git客户端,我会看到每个文件都被更改了。 我最初认为这与core.autocrlf设置有关,但我在Windows git客户

该场景是在IBMi服务器上有一个git存储库(带有一个工作文件夹)。该文件夹已共享到Windows计算机。该文件夹中的代码是在Windows计算机上创建的,但存储库和初始签入是通过服务器上的git完成的。(该服务器上的git客户端本质上是linux版本)

现在,当我从服务器上的git客户端查看git状态时,工作目录显示为没有更改。但是,如果我在我的Windows机器上使用git客户端,我会看到每个文件都被更改了。 我最初认为这与core.autocrlf设置有关,但我在Windows git客户端(autocrlf=false)中关闭了该功能,而在服务器的git配置中根本没有设置该功能

有人能解释为什么我从两个git客户端看到两个不同的结果吗


仅供参考,我必须在服务器上使用git客户端,因为git命令必须与该服务器上更全面的更改管理解决方案集成。但是,从Windows使用git更方便,因为我可以在Windows上使用GitGUI,这将有助于将git介绍给团队的其他成员

根据评论,git似乎正在跟踪每个文件的权限更改。有关如何不使git跟踪文件权限的信息,请参阅。总结一下答案,您可能需要执行
git config--global core.filemode false
。要确保这是问题所在,请执行git-c core.filemode=false diff。你应该(希望)看到一个空的差异


警告一句:如果你有严格的安全措施,这可能是你不想做的事情。最好只接受/跟踪文件权限更改。

git diff的输出是什么?这只是行的结尾吗?我看到(每个文件):旧模式100755(下一行)新模式100644听起来像是权限更改。换句话说,跟踪的变化只是每个文件的权限发生了变化。是的,我发现了一个类似的问题:现在就尝试这个解决方案。如果有效,将更新此问题以指向顺便说一句,mwm314,感谢您为我指出正确的方向。将研究为什么这些文件设置了可执行位的原因-它们可能不应该设置,并且可能会正确地更新这些文件以避免出现问题