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

时间:2016-04-08 14:35:05

标签: git

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

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

任何人都能解释为什么我会看到两个git客户端的两个不同结果吗?

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

1 个答案:

答案 0 :(得分:2)

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

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