cygwin git认为该文件以前有不同的模式

时间:2013-10-28 12:58:35

标签: git cygwin msysgit

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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

我还注意到,当你在cygwin中克隆或初始化一个repo时,它会自动将chmod添加到本地配置中,该配置优先于global,这将打破我上面的建议。

我能够通过core.filemode=true修复此问题并删除git config --local -e条目,将全局配置作为唯一要使用的定义。

缺点是你克隆的每个repo都会将它设置为filemode,所以你需要将它从每个repo中删除。我还没有找到一种方法来防止这种情况发生在cygwin上。