CentOS7 宝塔搭配git 实时更新项目源码
上一篇文章 介绍了如何在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 rm -r --cached .
git add .
git commit -m 'update .gitignore'
服务器上执行 可以直接把项目文件添加到仓库
作者:非常帅气的昵称吧
链接:https://www.jianshu.com/p/30f11666a72d
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
CentOS7 宝塔搭配git 实时更新项目源码的更多相关文章
- Git下载Spring项目源码并编译为Eclipse
1)当前系统中安装了gradle,如果为安装,可以从:http://www.gradle.org/downloads,,下载完后进行解压到任意盘符,然后增加环境变量GRADLE_HOME,并在环境变量 ...
- git仓库与项目源码分离
在服务器上初始化git仓库 cd mkdir gitrepo cd gitrepo git init --bare runoob.git 本地 若是已经有git项目了,直接添加一个仓库地址就行了 gi ...
- Git 把码云上被fork项目源码merge到fork出来的分支项目
Git 把码云上被fork项目源码merge到fork出来的分支项目 By:授客 QQ:1033553122 需求描述 被fork的项目有更新代码,希望把更新的代码merge到fork分支项目 解决方 ...
- java crm 进销存 springmvc SSM 项目 源码 系统
系统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3 SSM ...
- 项目源码--Android天气日历精致UI源码
下载源码 技术要点: 1. 天气日历精致UI 2. Android的Http通信技术 3. Android的天气信息解析 4. Android的日历信息的统计 5. Andorid的地理位置的管理 6 ...
- 项目源码--Android应用商店源码
下载源码 技术要点: 1.互联网应用 客户端框架 2.综合应用开发所 有技术 3.安装应用的管理 4. HTTP网络通信技 术 5.下载安装.评论 框架 6.使用.版本升级 等统计方案 7.源 ...
- Android开发——导入github安卓项目源码
之前在Github上看见其他人的安卓项目源码,便是想下载源码来学习学习,但是下载之后一直导入失败,经过了漫长的摸索终于是成功了,便是分享一下经验 首先进入Github官网,找到想要学习的安卓源码 右上 ...
- Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览
关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/15/springboot2_code/ 项目结构 结构分析: Spring-boot-pr ...
- Atitit 项目源码的架构,框架,配置与环境说明模板 规范 标准化
Atitit 项目源码的架构,框架,配置与环境说明模板 规范 标准化 版本1.0 作者 艾龙 attilax 1. 概述:核心业务: 1 1.1. 功能文档路径 /palmWin/src/docum ...
随机推荐
- 二进制中 1 的个数(C++ 和 Python 实现)
(说明:本博客中的题目.题目详细说明及参考代码均摘自 “何海涛<剑指Offer:名企面试官精讲典型编程题>2012年”) 题目 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个 ...
- centos中从源程序升级python方法
http://www.cnblogs.com/sky20081816/p/3441920.html 1 .wget http://python.org/ftp/python/2.7.3/Python- ...
- zookeeper & kafka 集群
http://cloudurable.com/blog/kafka-architecture/index.html 静态解析 cat >> /etc/hosts << EOF ...
- GTID复制的搭建和问题处理
首先看一下什么是GTID: GTID(Global Transaction ID)是对于一个已提交事务的编号,并且是一个全局唯一的编号. GTID实际上是由UUID+TID组成的.其中UUID是一个M ...
- 什么是封装? ----------------php中"public"类似的访问修饰符分别有什么作用?----什么是抽象?抽象的关键字以及用法----- 什么是接口?接口的关键字以及用法-------------
什么是封装? ------------------------------------封装是php面向对象的其中一个特性,将多个可重复使用的函数封装到一个类里面.在使用时直接实例化该类的某一个方法,获 ...
- July 10th 2017 Week 28th Monday
I get that look a lot, but I never let it get to me. 我常常受到异样的目光,但我从不把它们放在眼里. I don't feel good these ...
- January 14 2017 Week 2nd Saturday
Don't try so hard, the best things come when you least expect them to. 不要着急,最好的总会在最不经意时出现. The secon ...
- How to update BOL entity property value via ABAP code
Suppose I have one product with ID I042416 which could be found in CRM WebClient UI: I would like to ...
- 通过nginx 499 来判断服务端超时数量
这个其实不能算一篇文章,因为内容太少了,就当记点笔记吧. (1)什么是 nginx 499 499 其实是 nginx 下特有的 http 状态码,代表客户端主动断开了连接,导致服务器无法返回 htt ...
- 7.spring:SpringAOP(配置文件)
SpringAOP(xml文件配置) 配置文件的方式,主要是在xml文件中进行配置,不使用注解! 目录: AtithmeticCalculator.java public interface Atit ...