Git:强制执行shell脚本执行权限

Git:强制执行shell脚本执行权限,git,Git,在Git中,您可以使用644或755权限签入文件。我希望强制所有的.sh文件将始终存储为755权限,以便可以立即执行。特别是在windows环境下,很容易意外丢失权限 那么,有没有一种方法来配置它,更像是用.gittributes配置文件处理?它可能可以用钩子来完成,但是有没有更干净的方法呢?这可能是用钩子来完成的。通过以下配置,您可以部分到达: 将此添加到.gittributes: *.sh filter=permissions 并将其添加到.git/config: [filter "

在Git中,您可以使用644或755权限签入文件。我希望强制所有的.sh文件将始终存储为755权限,以便可以立即执行。特别是在windows环境下,很容易意外丢失权限


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

这可能是用钩子来完成的。通过以下配置,您可以部分到达:

将此添加到
.gittributes

*.sh    filter=permissions
并将其添加到
.git/config

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

只要您
git添加
a
.sh
文件,就会应用干净的过滤器,并更改其权限。不幸的是,权限更改不会添加到索引中,因此此解决方案显然是不完整的。

我是否正确理解,过滤器无论如何都是必须在本地完成的,而不是我们可以存储在版本控制中的任何东西,因此它将适用于任何使用repo的人?你是对的,我没有想到:您可以将
.gittributes
文件添加到repo中,但除非其他用户在其配置中定义了权限过滤器,否则它不会做任何事情。