【问题标题】:File mode with msysgit使用 msysgit 的文件模式
【发布时间】:2012-08-30 08:41:10
【问题描述】:

我在网络驱动器上使用 msysgit (v1.7.7) 从 Windows 克隆了一个 Git 存储库。 一些文件在存储库中被标记为模式 100755。

使用 Windows 中的 git bash 工具,ls -l 命令有效地显示了这些文件的良好权限。 现在,当我从 Linux 访问存储库目录时,这些文件的权限是 644 而不是 755。

如果我在 Linux 端将它们 chmod 为 755 并返回到 Windows 上的 git bash 工具:

  • ls -l 命令仍显示文件拥有 755 权限
  • git diff 命令告诉文件模式从100755 更改为100644

知道如何在 Windows 上使用 msysgit 正确处理文件模式吗?

我在 msysgit 上发现了这个问题,它对应于我的问题 http://code.google.com/p/msysgit/issues/detail?id=164 我在我的文件上尝试了建议的提示git update-index --chmod=+x,但它没有改变任何东西。

【问题讨论】:

    标签: git msysgit


    【解决方案1】:

    mingw 不像 linux 那样支持文件模式。据我了解,它遵循 Windows 扩展支持,即 .exe 将具有 +x 位。但是 chmod 什么也没做。

    因此,对于 git,您应该指定 git config core.filemode false 以禁用 mingw 中的文件模式支持。如果你需要改变它,你应该在Linux下进行。

    Howerver,也许我错了,但是 cygwin 确实支持文件模式。你可以试试,而不是 mingw。

    【讨论】:

    • 如果存在指定filemode=true 的本地.git/config 文件(从而覆盖您的全局配置),您可以将-c core.filemode=false 添加到您的命令中。但是,如果 git 是从脚本运行的,因此您无法控制命令行参数,我找不到任何可以设置为完成相同操作的环境变量。
    猜你喜欢
    • 2013-02-23
    • 2016-01-23
    • 1970-01-01
    • 2011-07-06
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多