Git安装脚本如何输入shell命令

问题描述:

这是一个比openshift更多的git相关问题。
当我使用git将文件推送到git服务器时,我发现我的perl index.cgi文件的文件权限在我的openshift repo中被更改为700。
所以我每次做一推的时候,我一直在使用ssh登录到服务器,并在我的$OPENSHIFT_REPO_DIRchmod a+x index.cgi将其更改为755Git安装脚本如何输入shell命令

我git的文档,可以增加一个钩阅读我试图使用以下命令更新挂钩目录中的后更新脚本

exec chmod a+x $OPENSHIFT_DATA_DIR/index.cgi 

但是,这似乎并没有奏效。

你能告诉我我做错了什么吗?
如何确保在每次推送文件时都不需要更改chmod

怎样才能通过git的安装脚本执行shell命令(我不知道什么是安装脚本,我认为这意味着钩)

根据下面的建议,我想我会需要添加钩到服务器,所以我尝试过,但我得到一个错误

$ git add .git/hooks/post-update error: Invalid path '.git/hooks/post-update' error: unable to add .git/hooks/post-update to index

所以我尝试使用action hooks一些选项放置一个“开始”,在当地.openshift/action_hooks目录。

香港专业教育学院试图使用的命令有 exec chmod a+x register.cgi甚至chmod a+x register.cgi

没有多少运气。任何输入。我将把这作为一个单独的q反对行动钩子。

这是一个比openshift更多的git相关问题。

其实,它更关系到openshift比它的Git:Git only records 644 and 755 permissions

但管理结帐(和更新工作树)的目标系统将根据default umask(可能在您的案例077)设置权限。
确保默认umask022

关于挂钩,检查它的名字(“post-update”,没有扩展名)和权限(必须是可执行的,755将是有益的)

+0

感谢上的umask尖端。其设置为0077.making它为022会如果我理解正确确保我的文件将有644权限? – 2014-10-28 09:49:08

+0

挂钩在我的本地git挂钩文件夹中被命名为post-update。现在在发布后,我尝试将钩子添加到git服务器,但是出现错误。我也尝试在openshift/git/app.git/hooks文件夹中编辑钩子样本,但由于钩子文件夹属于root,所以它没有给我写文件的权限。 – 2014-10-28 09:51:47

+1

@RonAbraham可以解释为什么钩子没有执行:它是一个服务器钩子,由接收提交的远程仓库执行。你不能“混帐添加”一个钩子:一个钩子永远不会被推。 – VonC 2014-10-28 10:37:47

把权力在这种情况下的GitWeb文件夹。

的GitWeb/
drwxr-XR-×3根根4096年09月25 12:01。
drwxr-XR-X 225根根12288 10月27日20时10 ..
-rwxr-XR-X 1根根251319 09月23日4时36 gitweb.cgi
lrwxrwxrwx 1根根23年9月10日4时36分index.cgi - > gitweb。CGI
drwxr-XR-×2根根4096年09月25 12:01静态

+0

不错的把戏。但邮政是有点神秘。你的意思是创建一个有点的符号链接?我没有得到你。 – 2014-10-28 09:59:56