7

我为 cygwin 手动构建了最新版本的 git。唯一的问题是它认为文件模式已更改(从 644 更改为 755)。安装在 Windows 中的 Git 看不到任何更改。实际文件模式为 755(windows Git 和 cygwin git 显示相同)。

core.filemode因此,结果,1)在 Windows 上,无论设置为 true 还是 false,git 都不会显示任何更改2)在 cygwin 上,如果设置为 true 或未设置,则显示模式的更改,并且在设置core.filemode时不显示任何更改core.filemode为 false 实际文件模式为 755。

所以,我的问题是,Windows git(msysgit)中是否有一个错误(功能)模拟core.filemode = false忽略选项集。或者 cygwin git 是否显示错误的先前文件模式。我想这是第一个,因为文件是 xml 类型的。

4

1 回答 1

7

mysysgit 不能很好地支持文件权限。它假定所有 .exe 都是 755,所有文本都是 644。根据我的经验,我总是filemode=false在 mysysgit 的全局配置中。

为 cygwin 使用单独的全局配置,filemode=true自 cygwin 支持以来chmod,您可以根据需要跟踪可执行位,但您必须从 cygwin 提交对它的更改。

我还注意到,当您在 cygwin 中克隆或初始化 repo 时,它会自动添加core.filemode=true到本地配置中,该配置优先于全局,这将打破我上面的建议。

我能够通过git config --local -e删除filemode条目来解决这个问题,将全局配置作为唯一要使用的定义。

缺点是您克隆的每个仓库都将其设置为true,因此您需要在每个仓库中将其删除。我还没有找到在cygwin上防止这种情况的方法。

于 2014-03-13T23:12:10.483 回答