php 通过exec 创建git分支失败
2016-06-13 00:00
120 查看
今天给我们自己的发布系统增加一个新建分支的功能,操作比较简单,但是使用php执行shell命令的时候总是无法push分支到远程,但是登陆服务器执行却是可以的
新建分支命令如下
php大概代码如下,执行这个php文件是定时执行的
奇怪的是 分支创建成功了,但是push 去没有成功,打印出来的内容也没有提示什么错误,排除了半天没查到原因
开始我在$cmd中加了一个调试命令,ssh git@xxxxx,我是怀疑没有加入ssh key 导致的
但是通过php执行exec执行出来的命令提示是
发现 是不同的用户,一个是vincent,一个是robot,其实这个时候如果比较敏感的就知道什么问题了,后来我也是想到这点才解决的
后来我想办法将 push的命令提示打印出来了
提示错误信息如下
我猛然想起来了,我是没有给robot账号 权限哇,我们git使用gitlab搭建的
原文地址:
php 通过exec 创建git分支失败
标签:
exec
git
php
push
【Git 使用笔记】第二部分:基本命令 和 单分支开发
ubuntu12.04 安装 php5.4/php5.5
github在版本库中删除某个文件的所有历史记录
Nginx return 关键字配置小技巧
新建分支命令如下
git fetch --all git checkout -b pmt_20160624_v10.7.4 origin/master git push origin pmt_20160624_v10.7.4:pmt_20160624_v10.7.4
php大概代码如下,执行这个php文件是定时执行的
<?php $cmd = [ "cd /data/xxx", "git fetch --all", "git checkout -b pmt_20160624_v10.7.4 origin/master", "git push origin pmt_20160624_v10.7.4:pmt_20160624_v10.7.4" ]; exec( implode(" ; ",$cmd),$outputs ); var_dump( $outputs );
奇怪的是 分支创建成功了,但是push 去没有成功,打印出来的内容也没有提示什么错误,排除了半天没查到原因
开始我在$cmd中加了一个调试命令,ssh git@xxxxx,我是怀疑没有加入ssh key 导致的
$ ssh git@xxxxx PTY allocation request failed on channel 0 Welcome to GitLab, vincent! Connection to xxxxx closed.
但是通过php执行exec执行出来的命令提示是
Welcome to GitLab, robot!
发现 是不同的用户,一个是vincent,一个是robot,其实这个时候如果比较敏感的就知道什么问题了,后来我也是想到这点才解决的
后来我想办法将 push的命令提示打印出来了
git push origin pmt_20160624_v10.7.4:pmt_20160624_v10.7.4 --progress > /tmp/release.log 2>&1
提示错误信息如下
GitLab: You are not allowed to push code to this project. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
我猛然想起来了,我是没有给robot账号 权限哇,我们git使用gitlab搭建的
重点回顾
git把自己的输出 放到了 STDERR not STDOUT ,所以需要重定向下,才有了如下命令git push origin pmt_20160624_v10.7.4:pmt_20160624_v10.7.4 --progress > /tmp/release.log 2>&1
原文地址:
php 通过exec 创建git分支失败
标签:
exec
git
php
push
智能推荐
【Git 使用笔记】第一部分:安装git 和 使用git【Git 使用笔记】第二部分:基本命令 和 单分支开发
ubuntu12.04 安装 php5.4/php5.5
github在版本库中删除某个文件的所有历史记录
Nginx return 关键字配置小技巧
相关文章推荐
- php引用
- 一定要知道的9段高效率开发PHP程序的代码
- lftp
- laravel5入门(一)
- 文件共享服务 NFS SAMBA FTP
- ThinkPHP简单入门开发
- php 数组函数实例
- smtp发送邮件
- Retrofit2 multpart多文件上传详解
- 黄聪: PHP WkHtmlToPdf/WkHtmlToImage 将网页直接转换成pdf和图片
- yershop商城系统Thinkphp开发(四)——微信篇3:主动给用户发消息-微信公众号模版消息
- 好文章之——PHP系列(一)
- PHP对表单提交特殊字符的过滤和处理
- PHP学习建议及编码规范
- composer及laravel安装及环境配置
- php中的&&与&的区别
- php正则匹配大全
- php 模仿百度蜘蛛采取网页信息
- PHP的标记符ehco <<<theEnd ,语法错误
- Cookie禁用了,Session还能用吗?