Centos 6.4搭建git服务器【转】
前阵子公司需要,让我搭个Git服务器,把之前用的SVN上代码迁移到git上去,所以就在阿里云主机上搭了一个,记录了下安装过程,留存文档以备查阅。本篇本章只涉及搭建部分的操作,更多git的使用可以参考文档。
系统环境
主机环境
hadoop-slave 192.168.186.129
系统版本信息
[root@hadoop-slave ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)
安装依赖
[root@hadoop-slave ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y
Centos系统会默认安装一个git-1.7.1,要移除一下。Git安装
[root@hadoop-slave ~]# git --version
git version 1.7.
[root@hadoop-slave ~]# yum remove git -y
下载源码包
[root@hadoop-slave ~]# wget https://www.kernel.org/pub/software/scm/git/git-2.5.0.tar.gz
[root@hadoop-slave ~]# tar -zxf git-2.5..tar.gz
[root@hadoop-slave ~]# cd git-2.5.
[root@hadoop-slave git-2.5.]# ./configure --prefix=/usr/local/git
[root@hadoop-slave git-2.5.]# make && make install
[root@hadoop-slave git-2.5.]# ln -s /usr/local/git/bin/* /usr/bin/
[root@hadoop-slave git-2.5.0]# git --version #显示版本号,安装成功
git version 2.5.0
[root@hadoop-slave git-2.5.0]#
Gitosis配置
Gitosis安装
权限管理工具gitosis的安装,需要用到python-setuptools
[root@hadoop-slave ~]# yum install python python-setuptools
[root@hadoop-slave ~]# git clone git://github.com/res0nat0r/gitosis.git
[root@hadoop-slave ~]# cd gitosis/
[root@hadoop-slave gitosis]# python setup.py install
……
Using /usr/lib/python2./site-packages
Finished processing dependencies for gitosis==0.2 #安装成功
公钥管理
管理git服务器需要一些管理者,可以通过上传开发者机器的公钥到服务器,添加成为git服务器的管理者。
以下是把windows机器作为git的管理者,在git bash生成公钥并上传至服务器的过程。
$ssh-keygen -t rsa #一路回车,不需要设置密码
$scp ~/.ssh/id_rsa.pub root@192.168.186.129:~
登录服务器
[root@hadoop-slave ~]# ls id_rsa.pub
id_rsa.pub
Gitosis初始化
服务器上生成git用户,使用git用户并初始化gitosis
创建git版本管理用户 git
[root@hadoop-slave ~]# useradd -c "git version manager" -m -d /home/git -s /bin/bash git
[root@hadoop-slave ~]# passwd git
初始化gitosis
[root@hadoop-slave ~]# mv id_rsa.pub /home/git/
[root@hadoop-slave ~]# su git
[git@hadoop-slave root]$ cd
[git@hadoop-slave ~]$ gitosis-init < ./id_rsa.pub
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
[git@hadoop-slave ~]$ chmod /home/git/repositories/gitosis-admin.git/hooks/post-update #添加权限
ok了,服务器端配置就ok了,下一步在开发者机器上配置
Git项目管理
Clone项目管理仓库
服务端配置完毕,现在转到管理客户端,进入管理机器(上传公钥的机器),打开git bash
$mkdir ~/gitrepo
$cd gitrepo
$git clone git@123.56.138.94:gitosis-admin.git #克隆项目管理仓库
问题1:
PS:如果clone报错了,密钥的问题和git用户密码的问题,(使用绝对路径/home/git/repositories/gitosis-admin.git可以下载,但是不推荐)
查看gitosis.conf中密钥的members的名称为是否是管理机器的主机名.pub。
项目权限管理
管理文件clone下来后,可以对项目进行管理。若要先创建一个新项目,要在gitosis-admin.git的配置文件中添加项目,并提交到git服务器告诉服务器我有个新项目。
$cd ~/gitrepo/gitosis-admin
$vim gitosis.conf
[group test] # 具有写权限的组名称
writable = test # 该组可写的项目名称
members = liuyan@liuyan-pc #有写权限的组成员
提交到服务器
$git add .
$git commit -a -m "add test repo"
$git push
创建新项目
管理文件提交后,本地创建的新项目test就可以提交到远程仓库了。
$cd ~/repo
$mkdir test
$cd test #对于新的项目,需要先在本地初始化为 Git 项目,添加要管理的文件并作首次提交
$git init
$touch readme
提交到远程服务器
$git add .
$git commit -a -m "init test"
$git remote add origin git@192.168.186.129:test.git
$git push origin master
git push origin master的意思就是上传本地当前分支代码到master分支。git push是上传本地所有分支代码到远程对应的分支上
服务端查看
[git@hadoop-slave repositories]$ ls
gitosis-admin.git test.git
test仓库已经存在,可以进行操作了。
项目添加协同开发
项目的开发人员一般不止一个,就要添加项目协同开发者。这里需要协同开发者的公钥,上传至git服务器。
$cd ~/gitrepo/gitosis-admin/keydir
$ mv ~/id_rsa.pub liuyan@zizhuoy.pub #修改公钥为`主机名.pub`
$vim gitosis.conf #添加成员
[group test]
writable = test
members = liuyan@liuyan-pc liuyan@zizhuoy
然后将添加数据后的目录更新到git服务器
$git add keydir/liuyan@zizhuoy.pub
$git commit -am " granted liuyan@zizhuoy commit rights to test "
$git push
注解:gitosis实际上是从服务器端的/home/git/repositories/gitosis-admin/.gitosis.conf文件读取信息的,通过以上操作,会将新的权限信息写入到该文件中,如果搞错了配置,导致失去了推送权限,可以通过修改该文件来重新设定,如果你手工编辑该文件的话,它会一直保持到下次向 gitosis-admin 推送新版本的配置内容为止。
推送完成后,新加的协同开发者就可以进行项目的开发了。
转自
Centos 6.4搭建git服务器 | Yan's blog
http://yanliu.org/2015/08/20/Centos-6-4%E6%90%AD%E5%BB%BAgit%E6%9C%8D%E5%8A%A1%E5%99%A8/
Centos 6.4搭建git服务器【转】的更多相关文章
- CentOS 6.4 搭建git 服务器
CentOS 6.4 搭建git 服务器 (2013-11-22 19:04:09)转载▼ 标签: it 分类: Linux 此文件是依据markdown所编写,更好效果参见本人github的文档ht ...
- 在CentOS 7中搭建Git服务器
环境说明 - CentOS 7.x 最小安装 - 配置网络连接 1. 安装Git及创建用户 # 安装Git $ yum install git # 创建一个git用户组和用户,用来运行git服务 $ ...
- 自定义Git之使用centos搭建git 服务器
Github 公开的项目是免费的,但是如果你不想让其他人看到你的项目就需要收费. 这时我们就需要自己搭建一台Git服务器作为私有仓库使用. 接下来我们将以 Centos 为例搭建 Git 服务器. 1 ...
- centos 搭建git服务器
centos 6搭建git服务器 安装 rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm yum ins ...
- 在CentOS搭建Git服务器 转
在CentOS搭建Git服务器 来自 :http://www.jianshu.com/p/69ea5ded3ede 前言 我们可以GitHub发布一些开源代码的公共仓库,但对于私密仓库就需要收费了.公 ...
- CentOs上搭建git服务器
CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...
- CentOS搭建Git服务器及权限管理
声明:本教程,仅作为配置的记录,细节不展开,需要您有一点linux的命令基础,仅作为配置参考. 1. 系统环境 系统: Linux:CentOS 7.2 64位 由于CentOS已经内置了OpenSS ...
- 搭建 Git 服务器(基于 CentOS 7)
服务器上的-Git-架设服务器-官网参考 对于规模比较小的团队,可以直接搭建 Git 服务器,逐个收集研发同学的证书配置进来即可.如果团队规模比较大,可以直接采用 GitLab.Drone 等现成的带 ...
- 在centos搭建git服务器时,不小心把/home/git目录删除了,我是怎么恢复的
在centos搭建git服务器时,不小心把/home/git目录删除了,我是怎么恢复的 在删除掉/home/git目录后,每次 git push提交时,都让填写密码,烦 第一步:在本地找到id_rsa ...
随机推荐
- EL语法 ${person.id} 这里面的id指的是实例对象的成员变量
EL语法 ${person.id} 这里面的id指的是实例对象的成员变量
- MariaDB插入中文出现???情况
本来打算创建一个测试表进行一个简单的实验,发现创建完python_test表后插入数据后,select发现所有中文都变成问号了,这一看就是出现了乱码 MariaDB [lhc]> create ...
- Django新手图文教程-转发
转发自:http://www.cnblogs.com/Leo_wl/p/5824541.html 一.Django简介 百度百科:开放源代码的Web应用框架,由Python语言编写...... 重点: ...
- 【刷题】洛谷 P3807 【模板】卢卡斯定理
题目背景 这是一道模板题. 题目描述 给定\(n,m,p( 1\le n,m,p\le 10^5)\) 求 \(C_{n+m}^{m}\ mod\ p\) 保证 \(p\) 为prime \(C\) ...
- 【BZOJ1492】【NOI2007】货币兑换(动态规划,CDQ分治,Splay)
[BZOJ1492][NOI2007]货币兑换(动态规划,CDQ分治,Splay) 题面 BZOJ 洛谷 Description 小Y最近在一家金券交易所工作.该金券交易所只发行交易两种金券:A纪念券 ...
- redis的简单事务
Redis对事务的支持目前还比较简单.Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令.当一个client在一个连接中发出multi命令时,这个 ...
- [知识点]C++中STL容器之set
零.STL目录 1.容器之map 2.容器之vector 3.容器之set 一.前言 继上期的vector之后,我们又迎来了另一个类数组的STL容器——set. 二.用途与特性 set,顾名思义,集合 ...
- LOJ #6036.「雅礼集训 2017 Day4」编码 Trie树上2-sat
记得之前做过几道2-sat裸体,以及几道2-sat前缀优化建图,这道题使用了前缀树上前缀树优化建图.我们暴力建图肯定是n^2级别的,那么我们要是想让边数少点,就得使用一些骚操作.我们观察我们的限制条件 ...
- 洛谷P1434 滑雪
题目描述 Michael喜欢滑雪.这并不奇怪,因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道在一个区域中最长 ...
- Problem D. Country Meow 2018ICPC南京
n个点求出最小圆覆盖所有点 退火算法不会,不过这题可以用三分套三分写 x轴y轴z轴各三分 #include <cstdio> #include <cstring> #inclu ...