2012-05-28 163 views
4

在Git中,您可以使用644或755权限检入文件。我想强制所有.sh文件将始终存储为755个权限,以便它们可以立即执行。特别是在Windows环境中,意外丢失权限很容易。Git:强制执行shell脚本执行权限

那么,有没有一种方法来配置它,最好像文件处理配置.gitattributes?它可能可以用钩子完成,但有没有更干净的做法呢?

回答

2

这可能是使用.gitattributes filter

一下添加到.gitattributes

*.sh filter=permissions 

这添加到.git/config:您可以通过以下配置获得一部分的方式有

[filter "permissions"] 
     clean = chmod 755 %f 

只要你git add一个.sh文件,干净的过滤器将被应用并且其权限将被改变。不幸的是,权限更改不会被添加到索引中,所以这个解决方案显然是不完整的。

+1

我是否正确理解过滤器将是反正的东西,必须在本地完成,而不是我们可以存储在版本控制中的任何东西,因此它将适用于使用回购的任何人? – eis

+0

你说得对,我没有想到:你可以将'.gitattributes'文件添加到回购站,但除非其他用户在其配置中定义了权限过滤器,否则它不会执行任何操作。 – georgebrock