使用gitolite在服务器上创建一个git分支

article/2025/10/3 21:52:07

说明:
  在服务器(IP:9.0.12.99)上建立一个git管理账号zjr,密码是:123456,主要改账号必须有sudo权限
  #useradd zjr 密码是123456
  客户端(IP:90.0.98.156)的账号:zhaojr  密码是:zhaojr
  Git本身的账号是: git  密码:git  所在的组为ssh
1、在服务器上安装git git-core
zjr@chinagps$sudo apt-get install git git-core
2、服务器安装openssh
zjr@chinagps$sudo apt-get install openssh-server
2、在git管理员账号zjr下生成key文件
zjr@chinagps$ssh-keygen -t rsa -C zjr
zjr@chinagps$mv .ssh/id_rsa.pub  zjr.pub
3、将生成的SSH public key拷贝到服务器端的/tmp目录
zjr@chinagps$scp  zjr.pub  zjr@90.0.12.99:/tmp   (注意zjr账号是90.0.12.99服务器上)
4、在90.0.12.99服务器端创建一个git账号
zjr@chinagps$ sudo  adduser  --system  --shell /bin/bash  --gecos ‘Git SCM User’  --group  --disabled-password  --home  /home/git git 
或者:
zjr@chinagps$ sudo adduser \
zjr@chinagps$> --system \
zjr@chinagps$> --shell /bin/bash \
zjr@chinagps$> --gecos 'Git SCM User' \
zjr@chinagps$> --group \
zjr@chinagps$> --disabled-password \
zjr@chinagps$> --home /home/git git
5、切换到git账号,下载Gitolite源码(服务器端)
zjr@chinagps$ sudo su git
git@chinagps$ cd $HOME
git@chinagps$ git clone http://github.com/sitaramc/gitolite
安装Gitolite(服务器)
git@chinagps$ mkdir -p ${HOME}/bin
git@chinagps$ ${HOME}/gitolite/install -to ${HOME}/bin
设置SSH Public key (服务器端)
git@chinagps$ ${HOME}/bin/gitolite setup -pk /tmp/HF.pub
其实,到这里,Gitolite已经安装完成。接下来就是添加Git项目,用户和设置Git项目的访问权限了。
6、git管理员账号对gitolite的配置
但是如果你的服务器对SSH的权限做了限制,例如只有在sshusers用户组里的用户才可以SSH到服务器,那么你还需要做一个额外的设置
那就是添加git用户及以后的Gitolite的用户到sshusers用户组。否则,当你克隆Git项目时,你将被提示输入密码。如下图:

如果出现上图中类似的情况,添加git用户到sshusers用户组,如下:
zjr@chinagps$ sudo adduser git sshusers
本次搭建没遇到过这种情况
7、克隆Gitolite管理库到git管理账号zjr下面:
zjr@chinagps$ git clone git@90.0.12.99:gitolite-admin.git 
你可以看到在管理库里,有两个目录, conf/和keydir/,其中conf/下面有个名为gitolite.conf的配置文件。
① conf/gitolite.conf 用于Git项目配置,访问权限设置。
② keydir/ 用于存储用户的SSH public key(公钥)。
Git项目配置和访问权限设置请看Gitolite的README.txt文档。
8、对gitolite配置并建立一个初始化分支库
8.1、修改conf/gitolite.conf
添加一个新的Git项目
修改gitolite.conf
例如,新建一个名为git_test的Git项目,首先你需要在conf/gitolite.conf里注册git_test项目。假设你已经克隆了gitolite-admin.git项目,编辑conf/gitolite.conf,增加下面的内容。
repo haima/An03
    RW+ = @all

然后提交这部分修改,并使用以下命令字push到服务器上:
zjr@chinagps$ git push git@90.0.12.99:gitolite-admin.git 
8.2、在客户端账号是zhaojr(IP:90.0.98.156)下生成公共的key文件,并且拷贝到
90.0.12.99服务器上的/home/zjr/gitolite-admin/keydir,如下:
zhaojr@ubuntu$ ssh-keygen -t rsa    生成公共key
zhaojr@ubuntu$ mv .ssh/id_rsa.pub   zhaojr.pub     重命名成zhaojr.pub
zhaojr@ubuntu$ scp zhaojr.pub zjr@90.0.12.99: /home/zjr/gitolite-admin/keydir  
9、将新添加的zhaojr.pub 公共key文件上传到gitolite-admin上去。切换到90.0.12.99上的zjr账号.
如下:
zjr@~ $ cd /home/zjr/gitolite-admin/
zjr@~ $ git add keydir/zhaojr.pub
zjr@~ $ git commit –m  “add zhaojr user key to gitolite”
zjr@~ $ git config --global user.email chinagps@chinagps.com
zjr@~ $ git config --global user.name "chinagps"
注意这里的用户名称必须跟ssh-genkey –t rsa生成的chiangps.pub中的用户名称一致。
zjr@~ $ git push git@90.0.12.99:gitolite-admin.git   

10、新建基础分支:
zjr@ ~ $git clone git@90.0.12.99:gitolite-admin.git
zjr@ ~ $ cd gitolite-admin
zjr@ ~ $ vim gitolite-admin/conf/gitolite.conf
添加:
repo SZ_IMX6_HAIMA_T8_PLATFORM
RW+     =   @all 

zjr@ ~ $ git add conf/gitolite.conf
zjr@ ~ $ git commit –m “add SZ_IMX6_HAIMA_T8_PLATFORM master branch config”
zjr@ ~ $ git push git@90.0.12.99: gitolite-admin.git
zjr@ ~ $git clone git@90.0.12.99: SZ_IMX6_HAIMA_T8_PLATFORM.git
zjr@ ~ $cd SZ_IMX6_HAIMA_T8_PLATFORM
zjr@ ~ $ touch test
zjr@ ~ $ git add test
zjr@ ~ $ git commit –m “add test git File”
zjr@ ~ $ git push origin master
切换到客户端账号:
zhaojr@ ~ $ git clone git@90.0.12.99: SZ_IMX6_HAIMA_T8_PLATFORM.git
zhaojr@ ~ $ cd  SZ_IMX6_HAIMA_T8_PLATFORM
zhaojr@ ~ $ ls
 test
zhaojr@ ~ $ git branch
*master
zhaojr@ ~ $ git rm test
zhaojr@ ~ $ git commit –m “deletal test file”
zhaojr@ ~ $ git push git@90.0.12.99: SZ_IMX6_HAIMA_T8_PLATFORM.git
切换回管理员账号同时切换到之前的SZ_IMX6_HAIMA_T8_PLATFORM初始化目录:
先更新本地的master分支:
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git pull origin master 
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $ ls  --------->显示为空,之前上test文件已经删除
将之前SVN上下载的T8项目代码目录trunk移动到SZ_IMX6_HAIMA_T8_PLATFORM目录:
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $mv ~/trunk  ./
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $cd trunk
先删除所有目录下的.svn .git  .gitignore三个文件:
zjr@ trunk $ find . -name "*.svn" | xargs rm -rf
zjr@ trunk $ find . -name "*.git" | xargs rm -rf
zjr@ trunk $ find . -name .gitignore | xargs rm –fr 或者find . -name .gitignore | xargs rm -rf
移动所有文件到SZ_IMX6_HAIMA_T8_PLATFORM目录:
zjr@ trunk $ mv  ./*  ~/ SZ_IMX6_HAIMA_T8_PLATFORM
zjr@ trunk $cd  ~/ SZ_IMX6_HAIMA_T8_PLATFORM
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $ rm –rf  trunk
添加文件并上传:
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git add ./
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git commit –m “add SVN T8 project to SZ_IMX6_HAIMA_T8_PLATFORM project git”
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git push origin master
在 origin/master分支基础上新建haima/MMI_An03分支:
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git branch –r  ------》查看远程分支
origin/HEAD -> origin/master
  origin/master
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git checkout -b haima/MMI_An03 origin/master
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $ touch test
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git add test
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git commit -m "add test file"
上传到新建的分支上:
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git push origin haima/MMI_An03
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git branch –r  ------->查看远程分支
  remotes/origin/HEAD -> origin/master
  remotes/origin/haima/MMI_An03
  remotes/origin/master

将本地分支与远程分支进行关联:
zjr@ SZ_IMX6_HAIMA_T8_PLATFORM $    git branch --set-upstream haima/MMI_An03 origin/ haima/MMI_An03
上传完成之后到客户端账号进行验证:
zhaojr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git pull  --->版本更新
zhaojr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git branch –a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/haima/MMI_An03
  remotes/origin/master

当前处于master分支上
zhaojr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git branch –r
显示远程服务器上的分支:
origin/HEAD -> origin/master
  origin/haima/MMI_An03
  origin/master


11、客户端使用:
海马:An03项目使用:
下载海马An03项目:
zhaojr@~$git clone git@90.0.12.99: SZ_IMX6_HAIMA_T8_PLATFORM.git –b haima/MMI_An03
zhaojr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git branch –a
* haima/MMI_An03
  remotes/origin/HEAD -> origin/master
  remotes/origin/haima/MMI_An03
  remotes/origin/master

在这个分支基础上修改代码之后,使用以下命令字上传到haima/An03分支上:
zhaojr@ SZ_IMX6_HAIMA_T8_PLATFORM $
 git  push git@90.0.12.99: SZ_IMX6_HAIMA_T8_PLATFORM.git

海马T8项目使用:
下载海马An03项目:
zhaojr@~$ git clone git@90.0.12.99: SZ_IMX6_HAIMA_T8_PLATFORM.git 
zhaojr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git branch –a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/haima/MMI_An03
  remotes/origin/master

在这个分支基础上修改代码之后,使用以下命令字上传到T8的master分支上:
zhaojr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git status
zhaojr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git add  xxxx
zhaojr@ SZ_IMX6_HAIMA_T8_PLATFORM $ git commit –m “xxxx”
zhaojr@ SZ_IMX6_HAIMA_T8_PLATFORM $
 git  push git@90.0.12.99: SZ_IMX6_HAIMA_T8_PLATFORM.git


http://chatgpt.dhexx.cn/article/kb1fmxvd.shtml

相关文章

CentOS搭建gitolite服务器

目录 前言 一、创建虚拟机 二、修改虚拟机用户名 三、创建用户 四、通过源码安装gitolite 五、版本库镜像 六、验证镜像是否成功 七、新增加用户 八、创建远程仓库 参考资料 前言 一提起 Git,大家基本上都会想到 GitHub, GitLab 这一类在线托管平台。 我…

Centos下安装gitolite+git

一直以来我都是用SVN的,但最近做迭代开发、多分支时,发现SVN使用起来极不方便。因此打算换成git做源码管理。git的理论以及特性本文就不做讲解了,本主主要讲解怎么安装,配置git、以及git权限管理服务gitolite. 组网结构 git服务器…

gitolite安装及配置教程centos7

1. 安装依赖包 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y 2.安装 Git yum -y install git 3.创建git用户 useradd git passwd git # 输入再次git用户的密码# 切换到git用户 su git4.获取Gitolite版本库并安装配置 4.1 获取…

Git服务器搭建及Gitolite权限管理

之前写过一个Git服务器的简单搭建,那个的权限管理是通过手动配置的。这次用Gitolite来管理,方便快捷。 环境:Ubuntu Server 16.04.3(命名GitServer),网络正确配置192.168.xx.xx(可以连接Intern…

gitolite

2019独角兽企业重金招聘Python工程师标准>>> gitolite是什么 gitolite是git的权限控制系统。有如下特性: a. 在git服务器上需要一个真实的unix用户 b. 能用不同的账号访问git服务器,这些账号不是真实的unix用户也没有shell权限 c. 能控制多个git仓库的读…

搭建网站显示成功后却打不开主页原因

今年自学了一下建站,在腾讯云购买了域名和服务器,用护卫神主机大师搭了个网站。网站十分简单,运行得十分顺利。 过了两天,网站突然打不开了,页面显示没有备案。上网一查,备案需要准备资料,拍照…

【很容易忽视的问题】为何使用护卫神iis-windows服务器,在使用护卫神主机修改网站信息后则无法访问的根本原因??

本来是正常的网站,只要使用护卫神的主机大师修改一下,网站就提示错误:无法建立到 xxx.com 服务器的连接 不论基于哪个Lamp搭建环境【护卫神、phpstudy、宝塔Lamp】一旦你使用第三方软件为何网站,则必须确保以第三方的为准统一修改…

360主机卫士Linux版,360主机卫士

什么是虚拟补丁? 是一种可以使网站站长摆脱补丁管理困境的解决方案。 虚拟补丁简单的说就是"软补丁",针对CMS的漏洞,不用站长自己修改CMS代码,在应用防火墙上,生成的特定防护规则。 它的好处: 1.不用修改代…

护卫神IIS下没有办法直接访问thinkphp中public入口的问题解决方案

首次使用护卫神的主机系统来搭建运行自己的系统,发现没有办法直接指向框架的public,研究了一下总结出两种方案.如以下: 一. 1,先随意的创建一个主站不做使用. 2,在主站下面新建一个子站作为自己实际的项目配置.在主站目录的基础上追加public文件夹. 以上是第一种解决方法,很常…

护卫神·Nginx大师面板上如何设置伪静态

许多客户在使用护卫神Nginx大师创建网站后,因SEO要求,可能需要使用伪静态功能,在这里护卫神就大体说一下如何设置伪静态。本例以安装wordpress博客程序后设置伪静态;一、先打开桌面上的“护卫神Nginx大师”,右键点击要…

linux系统终端用户名和密码忘记了,主机大师(Linux)登录账户密码忘记的解决办法...

护卫神主机大师linux最新版本方法: 我们建议在初次安装完后复制相关的登录信息并妥善保存好。如没有复制下来,忘记了相关的登录信息或者是账户密码,可通过以下办法解决。 一、登录ssh终端后复制以下命令执行就可以创建一个新的用户&#xff1…

护卫神设置public目录(IIS下TP5如何设置运行目录)

护卫神设置public目录 最近有人问小编,护卫神主机系统或者IIS配置PHP的时候,public设置为对外公开目录这个问题百度无法搜索到真实解决办法,那么我们应该如何将运行目录设置为/public呢? 当我们使用护卫神主机系统配置Thinkphp的…

护卫神mysql远程_护卫神 主机管理系统使用说明(MySQL管理)

感谢大家使用【护卫神主机管理系统】v3.1,该版本支持在windows server 2003/2008/2012,含32位和64位,直接开设配置web站、ftp站,以及sql server和mysql,是您开设和管理虚拟主机的绝好帮手。 但是对于新用户可能在使用上…

护卫神apache大师3.0.0 php,护卫神Apache大师(PHP环境套件)V3.2.0 官方免费版

护卫神Apache大师是一套为方便广大用户管理服务器而开发的软件,集成了多版本PHP环境、Apache、Tomcat、JSP、MySQL、PhpMyadmin、主机管理系统、FilaZilla FTP,支持开设和管理多个主机、MySQL数据库。 【软件性质】自主开发,完全免费。 【运行…

系统切换服务器方法,护卫神•主机管理系统更换服务器方法(移机)

本文主要介绍如何整体迁移主机管理系统和网站到新服务器。 一、备份数据 将老服务器上的主机管理系统数据库备份。 位置:在主机管理系统安装目录下的host/admin/database/my.asp 二、安装主机管理系统 在新服务器安装护卫神•主机管理系统,推荐安装最新版…

护卫神主机大师或者是主机管理系统中创建网站时提示开设失败的解决办法

一种情况:阿里云默认的系统一般会开启密码复杂度的功能,这样在使用护卫神主机大师或者是主机管理系统开设网站时,填写的密码如不符合系统的复杂度要求。那么将出出现以下的提示:解决办法如下:1、打开系统组策略 2、找到…

护卫神 主机大师 MySQL无法远程连接的解决方案

护卫神 主机大师 MySQL无法远程连接的解决方案 背景:服务器小厂独立ip,其他环境直接用护卫神一键安装,因为远程桌面不总是很方便,远程连接MySQL报错 解决办法: 1、各种搜索引擎一阵猛搓,无法解决&#xf…

服务器维护护卫神,护卫神主机重启服务器

护卫神主机重启服务器 内容精选 换一换 通过Web浏览器登录资源,会话连接断开,提示网络连接异常,连接已断开,请重试(Code:T_1006)。云堡垒机系统与资源服务器之间网络连接不稳定,导致连接断开。云堡垒机或资…

护卫神主机大师php,护卫神主机大师下载

护卫神主机大师支持一键安装网站运行环境(IISASPASP.netPHPMySQLFTP伪静态PhpMyAdmin),并可在线开设主机、SQLServer和MySQL;Web方式管理,拥有独立前台和后台面板。护卫神主机大师支持WindowsServer2008/2012,推荐在全新操作系统下安装。 软件…

护卫神mysql提权_护卫神主机大师提权漏洞利用分析

*本文原创作者:Freedom,本文属FreeBuf原创奖励计划,未经许可禁止转载 0x01 前言 护卫神主机大师支持一键安装网站运行环境(IISASPASP.netPHP5.2-5.6MySQLFTP伪静态PhpMyAdmin),并可在线开设主机、SQL Server和MySQL;We…