从windows和linux访问时,共享目录repo上的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上使用git GUI,这将有助于向团队的其他成员介绍git。

根据注释,git似乎在跟踪每个文件的权限更改。请参阅此处了解如何不使git跟踪文件具有权限。总结一下答案,你可能想要做git config --global core.filemode false。要确保这是问题所在,请执行git -c core.filemode=false diff。你应该(希望)看到一个空的差异

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

最新更新