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

dhb*_*lah 7 git cygwin msysgit

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

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

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

Sea*_*ean 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 上防止这种情况的方法。