我找不到任何关于如何正确执行此操作的帖子/文章 - 通常这意味着您使用错误,所以我想我应该在这里要求检查:)
我正在使用 Gitolite,它运行良好。我已经实现了一个通用的接收后 Hook ,当我的团队成员之一推送新的提交(我为他们的存储库激活该提交)时,我会收到通知。我遇到的问题是,每次推送后(无论 Hook 是否更改),文件都会被覆盖并获得以下权限:
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
.
有更好的方法吗?
最佳答案
我had the same Problem 。简短的回答是:
检查 unix 机器上的 gitolite-admin 存储库,chmod +x
你的文件并推送它。
从现在起,即使在 Windows 上克隆存储库,该文件也是可执行的(自 cloning on windows sets core.fileMode=false 起)
关于每次 gitolite-admin 推送后,Gitolite 后接收 Hook 不再可执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310356/