上一篇文章 介绍了如何在CentOS7上 搭建GIT环境 详见链接:https://www.cnblogs.com/mverting/p/10206532.html

本章主要介绍git如何和wdcp搭配 , 做到实时提交修改

如果按照网上常见的教程, 一般都是要新建git用户和用户组, 而wdcp里站点默认的用户是www组里的www用户, 如果强制把站点用户改成git , 很多项目会无法正常运行, 所以本章就介绍如果以www这个用户作为git的默认用户, 并实现git的仓库和代码分离

一. 需要给www用户创建用户目录

wdcp中www用户默认的用户目录,指向的是dev/null, 我们需要修改成和自己创建的git用户生成的用户目录同级的目录 /home/www

如果原来已经创建过用户 只需要在/home文件夹中新建 www文件夹

cp /home/user1 /home/www

未创建过用户的 先创建一个属于www组的用户 然后把目录拷贝下就行了

adduser -g www aaa

cp /home/aaa /home/www

userdel git

二.  修改用户设置  设置www的用户目录

vi /etc/passwd

找到www用户  修改成如下

www:x:xxx:xxx::/home/www:/usr/local/git/bin/git-shell

/home/www这是是用户目录,/usr/local/git/bin/git-shell 这个要设置成自己的git安装的地址, 表示不允许www用户使用ssh登录,只能使用git的相关命令

三.  创建.ssh 目录,

www用户是wdcp安装时候就生成的, 我们并不清楚是否有密码, 也不能确定是否能设置密码, 所以这里不用密码登录, 使用RSA验证

cd /home/www/

mkdir .ssh #新建文件夹

chmod 700 .ssh

touch .ssh/authorized_keys #新建文件

chmod 600 .ssh/authorized_keys

后续用户只需要向authorized_keys中添加自己的公钥

四  创建git仓库并添加git的钩子文件

cd /home/www

git init --bare test.git #创建一个空仓库 仓库名字叫 test

cd test.git/hooks

vi post-receive  #git接收到用户提交的提交更新后 会执行此文件中的内容

写入下面内容  --work-tree 代表代码文件夹 --git-dir  代表仓库目录

#!/bin/sh

git --work-tree=/www/web/test/public_html/addons/aaa --git-dir=/home/www/test.git checkout -f

保存后 记得要改权限 需要有可执行权限

chmod  777 /home/www/test.git/hooks/post-receive

这样就把仓库和实际代码区域分开了  每当有改动提交到仓库, 就会自动检出到实际代码文件夹

五  修改仓库文件夹所有者为www

chown www:www -R /home/www/test.git

就是说要保证--work-tree 代码文件夹和--git-dir  仓库文件夹的所有者一致  wdcp站点的默认所有者是www 所以这里把仓库文件夹的所有者也修改成www

六  本地使用

git clone www@your-ip:test.git

这里就是要用www用户了

剩下的就是正常的git使用了

此教程的要点 实际只有一个 就是要保证git仓库的所有者 和 实际代码文件夹的所有者一致 这样才能做到实时的更新项目源码

清空git缓存

git rm -r --cached .

git add .

git commit -m 'update .gitignore'

服务器上执行 可以直接把项目文件添加到仓库

作者:非常帅气的昵称吧
链接:https://www.jianshu.com/p/30f11666a72d
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

CentOS7 宝塔搭配git 实时更新项目源码的更多相关文章

  1. Git下载Spring项目源码并编译为Eclipse

    1)当前系统中安装了gradle,如果为安装,可以从:http://www.gradle.org/downloads,,下载完后进行解压到任意盘符,然后增加环境变量GRADLE_HOME,并在环境变量 ...

  2. git仓库与项目源码分离

    在服务器上初始化git仓库 cd mkdir gitrepo cd gitrepo git init --bare runoob.git 本地 若是已经有git项目了,直接添加一个仓库地址就行了 gi ...

  3. Git 把码云上被fork项目源码merge到fork出来的分支项目

    Git 把码云上被fork项目源码merge到fork出来的分支项目 By:授客 QQ:1033553122 需求描述 被fork的项目有更新代码,希望把更新的代码merge到fork分支项目 解决方 ...

  4. java crm 进销存 springmvc SSM 项目 源码 系统

    系统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3  SSM ...

  5. 项目源码--Android天气日历精致UI源码

    下载源码 技术要点: 1. 天气日历精致UI 2. Android的Http通信技术 3. Android的天气信息解析 4. Android的日历信息的统计 5. Andorid的地理位置的管理 6 ...

  6. 项目源码--Android应用商店源码

      下载源码   技术要点: 1.互联网应用 客户端框架 2.综合应用开发所 有技术 3.安装应用的管理 4. HTTP网络通信技 术 5.下载安装.评论 框架 6.使用.版本升级 等统计方案 7.源 ...

  7. Android开发——导入github安卓项目源码

    之前在Github上看见其他人的安卓项目源码,便是想下载源码来学习学习,但是下载之后一直导入失败,经过了漫长的摸索终于是成功了,便是分享一下经验 首先进入Github官网,找到想要学习的安卓源码 右上 ...

  8. Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/15/springboot2_code/ 项目结构 结构分析: Spring-boot-pr ...

  9. Atitit 项目源码的架构,框架,配置与环境说明模板 规范 标准化

    Atitit 项目源码的架构,框架,配置与环境说明模板  规范 标准化 版本1.0 作者 艾龙 attilax 1. 概述:核心业务: 1 1.1. 功能文档路径 /palmWin/src/docum ...

随机推荐

  1. C#获取apk版本信息

    获取很多人都会问我为什么要写这个博客,原因很简单,这次研发apk版本信息的时候网上查了很多的资料都没有这方面的信息,因此这次功能完了想写下方法,如果以后博友们遇到了可以直接copy,不用花很多的时间, ...

  2. 64位Navicat Premium-11.2.7(64bit)访问64位Oracle服务器

    1 在windows 10 64位操作系统安装Navicat Premium-11.2.7(64bit). 2 在服务器安装64位的Oracle(win64_11gR2_database). 3 在h ...

  3. TreeMap----的实现原理(红黑树)

    TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致 ...

  4. C# 之 Request

    Request.QueryString(取得地址栏参数值)获取地址栏中的参数,意思就是取得”?"号后面的参数值.如果是多个是用这”&”符号连接起来的.Request.form取得表单 ...

  5. 关于Java中的反射的一个简单使用

    把以前在其他地方的技术文章重新整理一遍, 方便自己回忆, 也方便他人借鉴. 刚工作的时候发过这么一段代码: package cn.com.hanbinit.test; import java.lang ...

  6. 读书笔记之JavaScript中的数据类型

    JavaScript严格意义上分为ECMAScript.DOM.BOM.ECMAScript是一门真正意义上的语言,独立于浏览器,浏览器只是它的一个宿主环境.DOM(文档对象模型),为ECMAScri ...

  7. h5做的app和原生app的区别

    之所以说h5做的app和原生app的区别,是因为一位博友的问题: 随着 h5 的普及,是不是不再需要开发 app ? 我的回答是要分业务需求,分场合而定. 比如现在的微信小程序这么流行,甚至也取代了不 ...

  8. Module、__init__.py 文件解析

    一.什么是Module? 一个python Module就是一个模块,本质就是一个.py文件,其中包含了python对象的定义和python语句. 在模块内部,模块名存储在全局变量__name__中, ...

  9. 【题解】洛谷P1351 [NOIP2014TG] 联合权值(树形结构+DFS)

    题目来源:洛谷P1351 思路 由题意可得图为一棵树 在一棵树上距离为2的两个点有两种情况 当前点与其爷爷 当前点的两个儿子 当情况为当前点与其爷爷时比较好操作 只需要在传递时不仅传递父亲 还传递爷爷 ...

  10. 用javascript编写猜拳游戏(函数)

    const readline = require('readline-sync')//引用readline-sync console.log('欢迎进入猜拳游戏'); //电脑随机出拳 let fn ...