操作系统 – Ubuntu 14.04
  
  
   我正在使用GIT webhooks进行部署.
  
  
   我已经将部署密钥添加到git repo,现在我想在我的本地仓库发生推送时触发git pull origin master命令.
  
  
   这是我通过浏览器调用的test.php文件:
  
  
   //echo "THis is a test file on a test repo for testing the deploy functionality using github webhooks!!!!";
  
  
   echo exec('whoami');
  
  
   echo exec('sh -x /var/www/proj/test/git.sh');
  
  
   这是git.sh shell文件:
  
  
   #!/bin/bash
  
  
   cd /var/www/proj-dir/test
  
  
   git pull origin master
  
  
   当我使用php test.php在终端上运行它时,我得到了正常的结果:
  
  
   ubuntu From github.com:repo/test
  
  
   * branch master -> FETCH_HEAD
  
  
   Already up-to-date.
  
  
   ubuntu for whoami后跟git pull输出.
  
  
   现在问题是当我通过浏览器调用相同的http://example.com/test.php它显示用户或whoami输出为www-data,这是apache用户,但我尝试更新php文件的权限执行和更改用户到www数据,但没有工作.
  
  
   检查了apache日志,当我通过浏览器执行时,我收到了权限错误
  
  
   Please make sure you have the correct access rights and the repository exists. + cd /var/www/proj/deploy-test + git pull origin master
  
  
   主机密钥验证失败.致命:无法从远程存储库读取.请确保您具有正确的访问权限并且存储库存在.
  
  
   我需要做什么更新,以便文件通过浏览器请求工作?
  
  
   如果我需要更新sudoers文件应该更新什么?
  
  
   我将.ssh键添加到var / www / dir,因为它是apache用户的主页.但我仍然得到了
  
  
   git pull origin master
  
  
   error: cannot open .git/FETCH_HEAD: Permission denied
  
  
   另外,我为www-data用户添加了一行,以便能够执行sh文件.
  
  
   www-data ALL=(anthony) NOPASSWD: /var/www/mysite/vendor/tmd/auto-git-pull/scripts/git-pull.sh
  
  
   参考here仍然没有运气
  
  
   将.git文件夹的权限更新为www-data用户
  
  
   sudo chown www-data:www-data /var/www/proj/test/.git
  
  安装
  
   git
  
  ,生成公钥,加公钥 都有教程,需要注意的是以下几个方面
  
   php
  
  以www用户
  
   执行
  
  ,需要给到权限才能
  
   执行
  
  
   git
  
  pull1、vim /etc/sudoersroot下加一行www localhost=(ALL) NOPASSWD:/usr/bin/
  
   git
  
  (安装
  
   git
  
  后目录用which
  
   git
  
  查看)2、允许
  
   php
  
  
   执行
  
  exec shell_exec3、改目录权限4、.
  
   git
  
  改权限可写,我直接改成...
                                    分支操作
  
   git
  
  branch 创建分支
  
   git
  
  checkout -b 创建并切换到新建的分支上
  
   git
  
  checkout 切换分支
  
   git
  
  branch 查看分支列表
  
   git
  
  branch -v 查看所有分支的最后一次操作
  
   git
  
  branch -vv 查看当前分支
  
   git
  
  brabch -b 分支名 origin/分支名 创建远程分支到本地
  
   git
  
  branch --merged 查看别的分支和当前分支合并...
                                    本篇文章主要给大家介绍
  
   Git
  
  怎么用即
  
   Git
  
  的初步使用。
  
   Git
  
  是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。那么在之前的文章中,已经详细得给大家介绍过
  
   Git
  
  是什么以及
  
   Git
  
  工具的安装,需要的朋友可以先参考了解下。我们在本地安装好
  
   Git
  
  工具后,该怎么开始使用呢?下面我们就给大家介绍
  
   Git
  
  工具的初步使用。首先我们可以随便打开一个文件夹,鼠标点击右键,可以出现以下标记。这里我们就可...
                                    获取与创建项目
  
   命令
  
  
   git
  
  init用
  
   git
  
  init 在目录中创建新的
  
   Git
  
  仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。在目录中
  
   执行
  
  
   git
  
  init,就可以创建一个
  
   Git
  
  仓库了。比如我们创建 runoob 项目:$ mkdir runoob$ cd runoob/$
  
   git
  
  initInitialized empty
  
   Git
  
  repository in /Users/t...
开发中我们想推送代码到
  
   git
  
  仓库的时候,在测试环境立马就能看到是什么样的,我们可以通过
  
   git
  
  仓库的webhook钩子配置的,在推送代码到
  
   git
  
  仓库的时候,仓库收到代码,然后可以访问一个url,然后你在这个url写段代码
  
   执行
  
  更新代码的
  
   命令
  
  。
  
   php
  
  代码
<?
  
   php
  
  exec("cd /usr/local/nginx/html/yafcms  && sudo g...
                                    常用
  
   命令
  
  速查壁纸:1、常用的
  
   Git
  
  
   命令
  
  
   git
  
  add添加至暂存区
  
   git
  
  add-interactive交互式添加
  
   git
  
  apply应用补丁
  
   git
  
  am 应用邮件格式补丁
  
   git
  
  annotate同义词,等同于
  
   git
  
  blame
  
   git
  
  archive 文档归档打包
  
   git
  
  bisect二分查找
  
   git
  
  blame文件逐行追溯
  
   git
  
  branch分支管理
  
   git
  
  cat-file版本库对象研究工具
  
   git
  
  ch...
  
   git
  
  
   命令
  
  实践,
  
   git
  
  
   命令
  
  一、
  
   命令
  
  
   git
  
  checkout -b 分支名 //创建分支并切换到该分支
  
   git
  
  checkout 分支名 //切换到该分支
  
   git
  
  merge 分支名 //把分支合并到当前分支
  
   git
  
  branch -d 分支名 //删除该分支
  
   git
  
  branch -D 分支名 //强制删除该分支
  
   git
  
  log|head //最近一次记录
  
   git
  
  log --pretty=oneline /...
  使用场景:在运维管理中搭建一个可视化的版本控制和代码提交上线部署的平台是非常必要的。在这种情况下运维人员在linux的terminal中使用
  
   命令
  
  行或者
  
   git
  
  工具来不是很方便。我们需要的方式是使用webhook自动部署或者一个网页界面化的操作面板来控制。本文和之前的文章《CentOS上搭建
  
   git
  
  服务以及界面化管理_centos下gogs+nginx+mysql实现私有
  
   git
  
  服务》是承接关系。如...