如何更改GitHub上的文件模式?

如何更改GitHub上的文件模式?,git,github,Git,Github,之后,如果你去GitHub,不管发生什么,它仍然显示为100644。MSYS不是问题所在。即使MSYSchmod不起作用(它不起作用),Git也有一种解决这个问题的内置方法,即Git更新索引--chmod=+x。要明确的是,只会弄乱索引(暂存区域),而不会弄乱本地存储库(工作目录) 我确信问题出在GitHub上。在GitHub上,如果文件最初是以100775模式推送的,则一切正常。如果文件最初作为100644推送,则会导致问题。更改文件模式的尝试将通过git add成功,通过git commit

之后,如果你去GitHub,不管发生什么,它仍然显示为100644。

MSYS不是问题所在。即使MSYS
chmod
不起作用(它不起作用),Git也有一种解决这个问题的内置方法,即
Git更新索引--chmod=+x
。要明确的是,只会弄乱索引(暂存区域),而不会弄乱本地存储库(工作目录)

我确信问题出在GitHub上。在GitHub上,如果文件最初是以100775模式推送的,则一切正常。如果文件最初作为100644推送,则会导致问题。更改文件模式的尝试将通过
git add
成功,通过
git commit
成功,通过
git push
成功,甚至会显示在GitHub文件历史记录中,但不会反映在GitHub的“blob/master”页面上

更新

发件人:Petros Amiridis(GitHub工作人员)

主题:如何在GitHub上更改文件模式

我有一些好消息。我们的优秀团队刚刚确认这是一个缓存错误 在我们这边。我们的团队已经部署了修复程序


我认为问题在于,git的Windows实现所基于的,不能正确处理
chmod

(编辑:另一个答案说MSYS不是问题所在,这似乎很有道理。)

我猜这是命令

$ git update-index --add --chmod=+x test-file

$ git commit -m 'change mode'
 mode change 100644 => 100755 test-file

$ git push
通过更新本地存储库中的元数据(应该可以)和更改文件的权限(不可以),将本地存储库置于不一致的状态

通过撤消
更新索引
,您应该能够退出此操作:

git update-index --add --chmod=+x test-file
使存储库恢复到一致状态,然后在存储库的非Windows副本中进行更改。如果您没有访问Linux或其他类似Unix的系统的权限,请包括
git
(默认情况下不是这样,但您可以通过
setup.exe
)安装它,并为您提供一个
chmod
实际工作的环境。Cygwin的默认shell是bash,因此如果您一直在使用git bash,那么应该熟悉该环境

当您从git bash shell查看该文件时,该文件仍然不会显示为可执行文件,但它应该在GitHub web界面中显示为
100755

git update-index --add --chmod=+x test-file
git update-index --add --chmod=-x test-file
git commit -m 'change mode back'
git push