仅在git中更新文件权限

只要将一个some.sh文件转换成一个可执行文件( chmod 755 ... ),权限被更新,但不是内容。 有没有办法将文件提交到git中,以便可执行位将在clone / checkout / pull上恢复/设置?

更新:我如何跟踪新的权限提交给github

默认情况下,git会更新文件权限。

如果在修改权限时看不到任何更改,则可能在git中有一个忽略文件模式的configuration。

看看你的项目,在.git文件的.git文件夹,你应该看到这样的事情:

 [core] filemode = false 

您可以在您喜欢的文本编辑器中将其更改为true ,或运行:

 git config core.filemode true 

然后,你应该能够正常提交你的文件。 它只会提交权限更改。

@fooMonster文章为我工作

 # git ls-tree HEAD 100644 blob 55c0287d4ef21f15b97eb1f107451b88b479bffe script.sh 

正如你所看到的文件具有644权限(忽略100)。 我们想把它改成755:

 # git update-index --chmod=+x script.sh 

提交更改

 # git commit -m "Changing file permissions" [master 77b171e] Changing file permissions 0 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 script.sh 

不为我工作。

模式是真的,文件权限已经改变,但git说没有工作要做。

 git init git add dir/file chmod 440 dir/file git commit -a 

问题似乎是git只能识别某些权限更改。