首页 > 解决方案 > Git push 正在重置钩子的权限?

问题描述

我对 git 相当陌生,但我正在尝试设置 git 以将我的网站部署到我的服务器。

我创建了一个etw.git在我的服务器上调用的裸仓库,并post-receivehooks其中创建了以下内容:

#!/bin/sh git --work-tree=/home/username/www --git-dir=/home/username/www/etw.git checkout -f

我创建了一个本地存储库etw.git并对其进行了初始化。

然后我做了git remote add live ssh://username@mydomain.com:18765/home/username/www/etw.git

我的问题是,当我这样做时,git push live master它会成功,但更新的文件只会显示在我的网站上,如果在做之前git push live master,我使用chmod -R +x hooks修改我的/home/username/www/etw.git/hooks文件夹的权限。

这是hooks使用 chmod 之前的样子: 在此处输入图像描述

一旦我这样做chmod -R +x hooks,它看起来像: 在此处输入图像描述

Git push 只有在我做之后才会起作用chmod -R +x hooks

但是在 I 之后git push live master,权限被重置(回到第一张图片),我必须chmod -R +x hooks再次执行,然后再进行另一次推送。

此外,当推送到服务器时,它会推送所有 4000 多个对象,而不仅仅是修改过的对象。这使得它需要很长时间。

最后,在推送到服务器后,我的post-receive丢失了#,它就变成了:

!/bin/sh git --work-tree=/home/username/www --git-dir=/home/username/www/etw.git checkout -f

标签: git

解决方案


推荐阅读