linux - Git Install Script 如何输入shell命令

标签 linux git perl shell openshift

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

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

exec chmod a+x $OPENSHIFT_DATA_DIR/index.cgi

然而,这似乎并没有奏效。

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

如何通过 git install 脚本执行 shell 命令(我不知道什么是安装脚本,我认为它意味着钩子(Hook))

根据以下建议,我认为我需要将钩子(Hook)添加到服务器,所以我尝试了,但出现错误

$ git add .git/hooks/post-update 错误:无效路径'.git/hooks/post-update' 错误:无法将 .git/hooks/post-update 添加到索引

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

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

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

最佳答案

This is more of a git related question than openshift.

实际上,它与 openshift 的关系比与 Git 的关系更密切:Git only records 644 and 755 permissions .

但是管理 checkout (和更新工作树)的目标系统会根据 default umask 设置权限。 (在你的情况下可能是 077)。
确保默认的 umask022

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

关于linux - Git Install Script 如何输入shell命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26602640/

相关文章:

android - Ionic AngularJS 在 ubuntu 上构建 android

linux - 如何填写命令行界面?

git - 如何检查特定的 pull 请求

windows - Eclipse,导入项目但不复制

perl - 为 OS X 构建 Perl - 架构特定的编译选项

linux - Perl 正则表达式递归替换多个文件组中的字符串,如 "*.php" "*.html"

C linux sem_wait 在线程中(有时)不起作用

linux - 我如何在 linux 中使用 cp(复制)或 rm(删除)命令发送电子邮件

git/jenkins TLS 问题

json - 祝福对象转换为 JSON