如何阻止git使文件在cygwin上不可执行?

maa*_*nus 56 git permissions cygwin

我通过cygwin在Windows上使用git并很快决定使用filemode=false(因为否则我在最初的git clone之后有很多变化).我根本不对跟踪权限感兴趣,我唯一想到的是一些文件是可执行的.有时,我发现x某些文件上的标志会丢失,我强烈认为这是因为git.

我很满意一个允许chmod a+x ...在需要时执行的解决方案.

Kar*_*ldt 103

我相信你想要git update-index --chmod=+x <file>,然后提交.

  • [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在写入该文件时不会设置可执行位. (2认同)
  • 我使用Cygwin版本的git.我的同事使用"git bash"shell,它使用MSYS而不是Cygwin.他们*应该*愉快地一起工作,但是其他人签到的*.bat文件看起来对他们来说是可执行的,但不适合我.我认为MSYS隐式地使*.bat文件在创建时可执行,但在签入时不会保留可执行位; Cygwin没有这样做.(我运行`chmod + x`并在需要时检查它们.) (2认同)

Ale*_*yak 6

你应该从头开始git update-index --chmod=+x <file>.

但这不会改变您的工作副本,因为:

git checkout .
Run Code Online (Sandbox Code Playgroud)


小智 5

我遇到了同样的问题。git update-index --chomd = + x对我不起作用。

我使用chmod + x,然后提交,它运行完美。