Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Git安装脚本如何输入shell命令_Linux_Git_Perl_Shell_Openshift - Fatal编程技术网

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

Linux Git安装脚本如何输入shell命令,linux,git,perl,shell,openshift,Linux,Git,Perl,Shell,Openshift,与openshift相比,这更像是一个与git相关的问题。 当我使用git将文件推送到git服务器时,我看到我的perlindex.cgi文件的文件权限在openshift repo中更改为700。 因此,每次推送时,我都必须使用ssh登录服务器,并在我的$OPENSHIFT\u REPO\u DIR中执行chmod a+x index.cgi以将其更改为755 我在git文档中读到,可以添加一个钩子,我尝试使用以下命令更新hooks目录中的更新后脚本 exec chmod a+x $OPENS

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

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

exec chmod a+x $OPENSHIFT_DATA_DIR/index.cgi
然而,这似乎并不奏效

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

如何通过git安装脚本执行shell命令(我不知道什么是安装脚本,我想它是指钩子)

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

$git add.git/hooks/post update
错误:无效路径“.git/hooks/post update”
错误:无法将.git/hooks/post更新添加到索引中

所以我尝试了一些选项,在local.openshift/action\u目录中放置一个“start”

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

运气不太好。任何输入。我将把它作为针对actionhooks的一个单独的q提出来

与openshift相比,这更像是一个与git相关的问题

实际上,它与openshift的关系比与Git的关系更密切:

但是,管理签出(并更新工作树)的目标系统将根据设置权限(在您的情况下可能是
077
)。
确保默认的
umask
022


关于钩子,请检查它的名称(“
post update
”,无扩展名)和权限(它必须是可执行的,755可能会有用)

在本例中,将权限带到gitweb文件夹。

gitweb/
drwxr-xr-x 3根根目录4096年9月25日12:01。
drwxr-xr-x 225根根目录12288十月27日20:10..
-rwxr-xr-x 1根根目录251319年9月23日04:36 gitweb.cgi
lrwxrwx 1 root root 9月23日04:36 index.cgi->gitweb.cgi
drwxr-xr-x 2根根目录4096年9月25日12:01静态


谢谢你给我有关乌玛斯克的提示。设置为0077。如果我理解正确,将其设置为022将确保我的文件具有644权限,对吗?该钩子在我的本地git钩子文件夹中命名为post update。现在,在发布完ure post之后,我尝试将钩子添加到git服务器,但是我遇到了一个错误。我还尝试在openshift/git/app.git/hooks文件夹中编辑钩子示例,但它没有授予我在那里写入文件的权限,因为钩子文件夹归root所有。@这可以解释钩子没有执行的原因:它是一个服务器钩子,由接收提交的远程repo执行。而且你不能“git add”一个钩子:钩子是永远不会被推的。@是的,那将是一个单独的问题(你可以链接回这个问题,你可以接受)@只需创建一个新的问题,这将更容易回答。我将对其进行编辑,将链接添加回该链接。很好的技巧。但是ure post有点神秘。你的意思是创造某种象征性的联系?我没有得到你。