我无法找到关于如何正确执行此操作的任何帖子/文章 - 通常这意味着您使用错误,所以我想我会在这里要求检查:)< / p>
我正在使用Gitolite,它的工作非常完美。我已经实现了一个公共的post-receive钩子,当我的一个团队成员推送一个新的提交时我会被通知,我已经为他们的repos激活了。我遇到的问题是,每次推送后(无论挂钩是否已更改)文件都被覆盖并获得以下权限:
rwel@ve-git:~$ ls -la /home/git/.gitolite/hooks/common/
total 36
drwxr-xr-x 2 git git 4096 Jul 3 13:23 .
drwxr-xr-x 4 git git 4096 May 1 15:41 ..
-rw------- 1 git git 21002 Jul 3 13:23 post-receive
-rwxr-xr-x 1 git git 308 May 15 16:24 update
因此,每次我执行gitolite-admin rwel$ git push origin
时,我都必须登录到git服务器并手动执行sudo chmod a+x /home/git/.gitolite/hooks/common/post-receive
。
有更好的方法吗?
答案 0 :(得分:2)
我had the same Problem。简短的回答是:
在unix机器上查看gitolite-admin存储库,chmod +x
您的文件并推送它。
从现在起,该文件是可执行的,即使在Windows上克隆了repo(从cloning on windows sets core.fileMode=false开始)