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

时间:2014-10-28 07:10:18

标签: linux git perl shell openshift

这比openhift更像是一个与git相关的问题 当我使用git将文件推送到git服务器时,我看到我的perl index.cgi文件的文件权限在我的openshift repo中被更改为700。 因此,每次我进行推送时,我都必须使用ssh登录服务器并在chmod a+x index.cgi中执行$OPENSHIFT_REPO_DIR将其更改为755。

我在git文档中读到可以添加一个钩子,我尝试使用以下命令更新hooks目录中的post更新脚本<​​/ p>

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

所以我通过在本地.openshift / action_hooks目录中放置一个“start”来尝试使用action hooks的一些选项。

我试图使用的命令是  exec chmod a+x register.cgi甚至是chmod a+x register.cgi

没多少运气。任何输入。我将把它作为一个单独的反对动作钩子来提高。

2 个答案:

答案 0 :(得分:3)

  

这比openhift更像是一个与git相关的问题。

实际上,它与开放式移动相关,而不是与Git相关:Git only records 644 and 755 permissions

但管理结帐(以及更新工作树)的目标系统会根据default umask(可能是您的077)设置权限。
确保默认umask022

关于钩子,检查它的名称('post-update',没有扩展名)和权限(它必须是可执行的,755会很有用)

答案 1 :(得分:1)

在这种情况下为gitweb文件夹带来权限。

  

的GitWeb /
  drwxr-xr-x 3 root root 4096 Sep 25 12:01。
  drwxr-xr-x 225 root root 12288 10月27日20:10 ..
  -rwxr-xr-x 1 root root 251319 Sep 23 04:36 gitweb.cgi
  lrwxrwxrwx 1 root root 10 Sep 23 04:36 index.cgi - &gt; gitweb.cgi
  drwxr-xr-x 2 root root 4096 Sep 25 12:01 static