我在Windows上通过cygwin使用git,很快就决定使用filemode=false
(因为否则我在初始git克隆后会发生很多变化)。我绝对不会对跟踪权限感兴趣,唯一需要考虑的是某些文件是可执行的。不时,我发现某些文件上的x
标志会丢失,我强烈认为这是因为git。如何阻止git使cygwin上的文件不可执行?
我很高兴能够在需要时执行chmod a+x ...
的解决方案。
我在Windows上通过cygwin使用git,很快就决定使用filemode=false
(因为否则我在初始git克隆后会发生很多变化)。我绝对不会对跟踪权限感兴趣,唯一需要考虑的是某些文件是可执行的。不时,我发现某些文件上的x
标志会丢失,我强烈认为这是因为git。如何阻止git使cygwin上的文件不可执行?
我很高兴能够在需要时执行chmod a+x ...
的解决方案。
我相信你想git update-index --chmod=+x <file>
,然后提交。
我遇到了同样的问题。 git update-index --chomd = + x不适用于我。
我使用chmod + x,然后提交,它工作完美。
或者使用update-index,commit,再次检出文件。 –
您应该从git update-index --chmod=+x <file>
开始。
但是这并不会改变你的工作拷贝,为:
git checkout .
我不认为这会有所帮助,因为我使用'FILEMODE = FALSE',所以我想我以后做什么从git中获取文件(而不是把它们放在git中)。每当git更改或创建文件时都会应用这些内容。而且,它应该自动运行。 – maaartinus
[The docs](http://www.kernel.org/pub/software/scm/git/docs/git-update-index.html#_configuration)特别向filemode = false的系统推荐此命令。如果我理解正确,则该设置仅适用于_automatic_检测权限更改。 Git仍然存储一个文件模式,这是您执行'git ls-tree HEAD'时的第一列。如果它显示为644而不是755,那么git在写入该文件时不会设置可执行位。 –
我看到我误解了'filemode = false'。不知何故,我想,它会禁用存储的位,但“索引和工作副本之间的可执行位差异被忽略”,而不是。 – maaartinus