零,centos8平台如何安装gitosis服务?

参见:centos8平台安装gitosis服务
地址:https://www.cnblogs.com/architectforest/p/12456655.html

一,用git初始化一个项目

1,进入代码所在的目录

例如目录为: /data/web/think_admin

root@kubuntu:~# cd /data/web/think_admin/
root@kubuntu:/data/web/think_admin#

2,初始化一个git项目

root@kubuntu:/data/web/think_admin# git init
已初始化空的 Git 仓库于 /data/web/think_admin/.git/

3,编辑gitignore,避免git项目中加入配置文件和临时文件

root@kubuntu:/data/web/think_admin# vi .gitignore

内容:

templates_action_c/
conf/constant_define.php
.project
.idea

说明:此处我举的例子是一个php项目

templates_action_c/     用来保存smarty模板编译后的临时文件

conf/constant_define.php  用来保存define的常量,作为实例运行时配置会发生变化:例如:数据库的地址等

.idea  开发工具产生的临时文件

说明:.gitignore用来保存不加入git项目的内容,

象临时文件和配置文件通常不需要加入代码库

4,配置git需要的用户和邮箱:

root@kubuntu:/data/web/think_admin# git config --global user.email "liuhongdi@gmail.com"
root@kubuntu:/data/web/think_admin# git config --global user.name "liuhongdi"

5,提交git项目

root@kubuntu:/data/web/think_admin# git add .
root@kubuntu:/data/web/think_admin# git commit -m "init think admin project"

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,在gitosis中添加用户和think_admin项目,并提交

1,把公钥文件复制到gitosis-admin/keydir目录下

首先生成公钥文件:命令是:

   ssh-keygen -t rsa

此处我直接用之前生成的公钥文件

root@kubuntu:~/gitosis-admin# cp /root/.ssh/id_rsa.pub keydir/liuhongdi.pub

2,编辑gitosis文件,新加一个项目

root@kubuntu:~/gitosis-admin# vi gitosis.conf

增加以下配置:

[group think_admin]
members = liuhongdi
writable = think_admin

说明:members是成员的列表,此处的名字应该和keydir目录中的pub文件一致

例如: liuhongdi   对应着 keydir目录下   liuhongdi.pub

    writable: 表示对项目 think_admin 有读写的权限,与之相应的是只读: readonly
group 表示是一个组,后面的think_admin表示组名,不与其他group重复即可,通常我们会使用项目名称

3,提交gitosis的修改到代码服务器

提交前看一下状态:

root@kubuntu:~/gitosis-admin# git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: gitosis.conf
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
keydir/liuhongdi.pub
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

提交到项目

root@kubuntu:~/gitosis-admin# git add -A
root@kubuntu:~/gitosis-admin# git commit -m "新增liuhongdi账号及think_admin项目";
[master 44be9e4] 新增liuhongdi账号及think_admin项目
2 files changed, 4 insertions(+)
create mode 100644 keydir/liuhongdi.pub

push到git服务器

root@kubuntu:~/gitosis-admin# git push origin master
枚举对象: 7, 完成.
对象计数中: 100% (7/7), 完成.
使用 2 个线程进行压缩
压缩对象中: 100% (4/4), 完成.
写入对象中: 100% (4/4), 471 bytes | 471.00 KiB/s, 完成.
总共 4 (差异 0),复用 0 (差异 0)
To ssh://123.124.125.126:12345/gitosis-admin.git
2c4f848..44be9e4 master -> master

4,有文档中提到需要从git服务器端初始化一个空代码库,实践中没必要这样做

三,客户端的think_admin项目, push到远程代码库

1,给think_admin配置remote:远程代码库的地址

当前的remote为空

root@kubuntu:/data/web/think_admin# git remote -v

添加remote

root@kubuntu:/data/web/think_admin# git remote add origin ssh://git@123.124.125.126:12345/think_admin.git
root@kubuntu:/data/web/think_admin# git remote -v
origin ssh://git@123.124.125.126:12345/think_admin.git (fetch)
origin ssh://git@123.124.125.126:12345/think_admin.git (push)

2,push到远程代码库

root@kubuntu:/data/web/think_admin# git push origin master
Initialized empty Git repository in /home/git/repositories/think_admin.git/
枚举对象: 1492, 完成.
对象计数中: 100% (1492/1492), 完成.
使用 2 个线程进行压缩
压缩对象中: 100% (1411/1411), 完成.
写入对象中: 100% (1492/1492), 3.72 MiB | 7.18 MiB/s, 完成.
总共 1492 (差异 277),复用 0 (差异 0)
remote: Resolving deltas: 100% (277/277), done.
To ssh://123.124.125.126:12345/think_admin.git
* [new branch] master -> master

四,web服务器端:发布think_admin项目

1,在web服务器端生成密钥对:

[root@yjweb ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
......

说明:一路回车即可,不需要指定文件名和密码

2,在gitosis-admin的机器上下载web服务器的pub文件,

并保存到keydir目录下

root@kubuntu:/data/git# mv root47.pub gitosis-admin/keydir/

在gitosis.conf中新加用户:

root@kubuntu:/data/git/gitosis-admin# vi gitosis.conf

增加下面的一个group

[group think_admin_ro]
members = root47
readonly = think_admin

说明:新增一个group,指定只读的用户

我们不建议从服务器提交代码,避免产生误操作,

所以给web服务器只读的权限

root@kubuntu:/data/git/gitosis-admin# git add -A
root@kubuntu:/data/git/gitosis-admin# git commit -m "新加root47用户,供web服务器使用";
root@kubuntu:/data/git/gitosis-admin# git push origin master
枚举对象: 14, 完成.
对象计数中: 100% (14/14), 完成.
使用 2 个线程进行压缩
压缩对象中: 100% (11/11), 完成.
写入对象中: 100% (11/11), 1.53 KiB | 1.53 MiB/s, 完成.
总共 11 (差异 3),复用 0 (差异 0)
To ssh://123.124.125.126:12345/gitosis-admin.git

3,回到web服务器,发布think_admin项目

[root@yjweb web]# git clone ssh://git@123.124.125.126:12345/think_admin.git

克隆完成后,

把模板文件目录创建

[root@yjweb think_admin]# mkdir templates_action_c
[root@yjweb think_admin]# chmod 777 templates_action_c

把配置文件添加到conf目录

[root@yjweb think_admin]# cp /data/web/think_admin.bak/conf/constant_define.php /data/web/think_admin/conf/

测试运行

五,查看本地centos的版本

[webop@yjweb ~]$ cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)

centos8上使用gitosis管理git项目的更多相关文章

  1. CentOS8上用Docker部署开源项目Tcloud

    一.安装Docker 1.我是虚拟机装的Centos7,linux 3.10 内核,docker官方说至少3.8以上,建议3.10以上(ubuntu下要linux内核3.8以上) root账户登录,查 ...

  2. centos8平台安装gitosis服务

    一,git服务器端:准备gitosis需要的各依赖软件 1,确认openssh是否存在?如不存在,以下列命令进行安装 [root@yjweb ~]# yum install openssh opens ...

  3. 使用自建Git服务器管理私有项目 Centos 7.3 + Git 2.11.0 + gitosis (实测 笔记)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso GIT服务器IP:192.168.1 ...

  4. 为git服务器配置gitosis管理权限

    yum install python-setuptools git clone https://github.com/tv42/gitosis.git cd gitosis sudo python s ...

  5. 使用Eclipse上传/下载Git项目

    使用Eclipse上传/下载Git项目 前提: Eclipse已安装EGit插件 已拥有GitLab / GitHub / 其它Git托管服务账号 SSH方式 配置 配置Git信息 配置用户信息 Ec ...

  6. 极速地将git项目部署到SAE的svn服务器上

    本文最初发布于我的个人博客:http://jerryzou.com/posts/gitForSAE/ 我花了一些时间自己写了一个能够极速地将一个git项目部署到SAE的svn服务器上的脚本.代码不是复 ...

  7. git —— pycharm+git管理/编辑项目

    pycharm+git  管理/编辑项目 一.pycharm中配置github 二.配置git 并不是配置了GitHub就可以的.还需要配置一下Git 前提是本地中已经安装了git 三.把本地项目上传 ...

  8. 在 CentOS 上部署 GitLab (自托管的Git项目仓库)

    参考资料https://github.com/mattias-ohlsson/gitlab-installer/blob/master/gitlab-install-el6.sh 环境准备OS: Ce ...

  9. git+github上传与管理

    1.首先下载并安装git,方便管理github上的代码 https://git-scm.com/downloads 2.然后点击安装好的git bash(注册好自己的github) git confi ...

随机推荐

  1. python的多种魔术方法

    目录 new str & repr iter getitem.setitem.delitem getattr.setattr.delattr call slots 定制类和魔法方法 new s ...

  2. Redis散列(Hash)的相关命令

    散列 就像一个减配的Redis 内部及其类似Java的Map 内容就是key:value结构 hash类型在面向对象编程的运用中及其适合,因为它可以直接保存编程语言中的实体类关系 增 hset hse ...

  3. dubbo学习(四)配置dubbo 注解方式配置

    provider(生产者) service注解暴露服务 /** * 用户管理实现类 */ @Service //用的dubbo的注解,表明这是一个分布式服务 @Component //注册为sprin ...

  4. JVM学习(二)JVM加载类

    一.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构 ...

  5. dubbo学习(八)dubbo项目搭建--消费者(服务消费者)

    PS:  项目架子以及工程间的maven依赖配置暂时省略,后续看情况可能会单独写一篇文章捋捋框架结构,先马克~ 配置和启动 1.pom文件引入dubbo和zookeeper的操作客户端(此步骤与生产者 ...

  6. 【性能监控-Perfmon工具】手动添加数据收集器,点击保存时需要输入用户NT AUTHORITY\SYSTEM的密码问题

    发现是有的电脑会弹出这种输入用户NT AUTHORITY\SYSTEM密码的现象,有的电脑不会弹出这个对话框.......仍然没搞懂是为什么? 关键是输入windows用户登录时的密码也不对!!压根不 ...

  7. 种子爆破&[GWCTF 2019]枯燥的抽奖

    伪随机数的爆破,种子爆破 做到了一道题,就是有个伪随机数爆破的漏洞,当时尽管是看到了这两个敏感的函数,但是先去看其他的了,没有看到什么漏洞,所以我当时是准备直接强行爆破,之后看到使用伪随机数爆破的方式 ...

  8. 吴恩达Machine Learning学习笔记(三)--逻辑回归+正则化

    分类任务 原始方法:通过将线性回归的输出映射到0-1,设定阈值来实现分类任务 改进方法:原始方法的效果在实际应用中表现不好,因为分类任务通常不是线性函数,因此提出了逻辑回归 逻辑回归 假设表示--引入 ...

  9. ios自动识别电话并变色的问题解决方法

    问题: 在做移动端页面时发现长串数字都被ios系统的手机识别为电话号码,且文字变成很土的蓝色,点击有下划线并弹出提示拨打该电话号码. 解决方法: 1.在head中加上下面这行代码就OK了(仅限于单页面 ...

  10. (转载)Altium Designer 17 (AD17)

    转载自:http://blog.csdn.net/qq_29350001/article/details/52199356 以前是使用DXP2004来画图的,后来转行.想来已经有一年半的时间没有画过了 ...