在Ubuntu上测试安装一下git server,为后面项目的代码管理做准备。记录流水账如下, 中间关于git 命令的使用说明不做过多解释,需要了解的请google或者直接git help:

我用到了三个用户:eric,root,git

eric是ubuntu的登陆用户,root就不用说了,git是用来支持gitolite的system用户(下面会说到创建过程)。

我的server地址是192.168.137.100

1.安装ssh, 准备公钥文件:

安装和生成公钥的动作都是在eric用户中完成的。eric用户要作为gitolite的admin用户。

因为gitolite 通过ssh进行通讯和认证,所以需要先确保server端安装了ssh,我用了openssh:

sodu apt-get install openssh-server openssh-client

安装完成后就生成公钥文件, 以下是按照默认参数来生成的:

ssh-keygen -t rsa

生成后的文件路径在~/.ssh/下面,有id_rsa, id_rsa.pub

先到此为止,下面会详细说明一下。

2. 安装git client,并配置全局用户名和邮箱

sudo apt-get install git

git config --global  user.name 'eric'

git config --global user.email 'youremail@126.com'

3. 安装gitolite

1)创建专门支持gitolite的用户

adduser \
--system \
--shell /bin/bash \
--group \
--home-dir /home/git git

git用户创建完成之后,可以尝试配置一下ssh登陆,具体做法如下:(因为不常用linux,在理解ssh方面还是有点吃力,但总算解决了问题,也记住了)

关于ssh的原理,推荐这篇很全面的文章。这篇文章里面有些演示命令的用户好像有问题,各位看的时候可以多查其他文档。

我们已经创建了eric用户的ssh public key,我们把id_rsa.pub文件放到/home/git/.ssh/,然后生成authorized_keys文件:

cat id_rsa.pub >> authorized_keys

转到eric用户,运行命令:

ssh git@192.168.137.100

正常情况是,出来connect提示,然后输入yes,连通。

如果有什么问题,请google,因为我碰到了host key检验不成功的提示,这个问题可能是/dev/tty的权限不够,或者是known_hosts里面有缓存key造成的,但也有可能是因为在弹出connect 提示的时候,你直接回车通过了,默认值是no。(这个真是silly)

连接通过之后,那一切就应进入下一步的安装了。

2) 在git用户下安装gitolite server, 推荐官网doc

这里就直接罗列命令流水了,我的当前路径是git用户的根路径:

git clone https://github.com/sitaramc/gitolite.git

mkdir $HOME/bin

gitolite/install -ln

cp .ssh/id_rsa.pub .ssh/eric.pub

bin/gitolite setup -pk /home/git/.ssh/eric.pub

顺利的话,到这一步应该是有个warnning的,就是说明eric已经是一个可以通过shell登陆的用户了。那应该怎么做呢?

rm -f .ssh/authorized_keys

bin/gitolite setup -pk /home/git/.ssh/eric.pub
 现在转到eric用户:

vi .ssh/config

Host gitbox

User git

HostName 192.168.137.100

IdentityFile /home/eric/id_rsa

保存退出

然后就可以试着拉一下默认库了:

git clone gitbox:gitolite-admin.git

hope you can enjoy the rest of your journey.....

[Add]如何创建repository

2 steps on this topic

第一步:配置gitolite-admin

在上面搭建的环境中,我们已经可以在eric用户中,pull出来了gitolite-admin代码。

接下来就要需要进入其源码路径中的conf,然后编辑gitolite-admin.conf,加入你的repos如下:

repo <yourreponame>

RW+  = <username>

这里的username就是在keydir里面的对应的用户。

都保存好之后,千万不要忘记把修改push到server,而且只有把这些修改push到server之后才会初始化新加的repository。

第二步:配置本地的project

进入你的project路径, 执行如下的命令:

git init

git add .

git commit -m "init repo"

希望经过上面的配置,你已经完成了git config

接下来就是要设置git server的相关信息了:

git remote add origin gitbox:<yourreponame>

git push origin master:refs/heads/master #如果这句不知道是什么意思,来一个链接供参考http://stackoverflow.com/questions/7506832/git-push-origin-masterrefs-heads-master-what-does-this-do

后面就自己高兴的搞去吧。。

用gitolite搭建git server的更多相关文章

  1. # 基于Gitolite搭建Git Server - 支持SSH&HTTP

    Git, 一个分布式的版本管理工具,我认为其革命性的点:在于改变了用户协作的方式,使得协作更简单. 下面讲述 使用一个开源软件 Gitolite搭建一个Git Sever, 并给了一个推荐的团队协助方 ...

  2. Ubuntu server 搭建Git server

    Ubuntu server 搭建Git server,git相比svn,最主要就是分布式了,每个客户端用户的本地都是一个版本管理控制器. Ubuntu server 版本为12.04 搭建步骤如下: ...

  3. Ubuntu server 搭建Git server【转】

    转自:http://www.cnblogs.com/candle806/p/4064610.html Ubuntu server 搭建Git server,git相比svn,最主要就是分布式了,每个客 ...

  4. 搭建Git Server

    windows上如何搭建Git Server   Git在版本控制方面,相比与SVN有更多的灵活性,对于开源的项目,我们可以托管到Github上面,非常方便,但是闭源的项目就会收取昂贵的费用.那么私有 ...

  5. 在windows上搭建git server Gitblit

    在Windows上搭建Git Server   第1步:下载Java并安装Java.我这里下载的是jdk1.7.0_79 第2步:配置Java环境变量 右键” 计算机” => ”属性” => ...

  6. 使用gitolite搭建Git服务器

    使用gitolite搭建Git服务器 运行环境 Ubuntu18.04 gitolite 搭建过程 安装好Ubuntu18.04系统 更新系统 sudo apt update sudo apt upg ...

  7. 在 mac os 上搭建 git server

    前言:之前学习了如何使用 git 后,一直想搭建一个本机搭建一个 git server 的,一开始不知道走了弯路用了 gitosis,折腾了我好几天都没配置好.昨晚查资料发现 gitosis 早就过时 ...

  8. windows上如何搭建Git Server

    Git在版本控制方面,相比与SVN有更多的灵活性,对于开源的项目,我们可以托管到Github上面,非常方便,但是闭源的项目就会收取昂贵的费用.那么私有项目,如何用Git进行代码版本控制呢?我们可以自己 ...

  9. [CentOS] 使用gitolite搭建git服务端

    1. 创建用户 #创建gitadmin用户 useradd gitadmin #设置gitadmin密码 passwd gitadmin #创建git用户 useradd git #设置git密码 p ...

随机推荐

  1. Proud Merchants---hdu3466(有01背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3466 与顺序有关的01背包. 如果一个物品p = 5,q = 7,一个物品p = 5,q = 9,如果 ...

  2. shell awk实战

    一.文本处理 1.按行提取关键字频次(如取第5列) awk 'BEGIN{FS="|"} {a[$5]+=1;} END {for(i in a) print i ":& ...

  3. Django接收自定义http header(转)

    add by zhj: Django将所有http header(包括你自定义的http header)都放在了HttpRequest.META这个Python标准字典中,当然HttpRequest. ...

  4. 七个可以提升python程序性能的好习惯,你知道吗?

    掌握一些技巧,可尽量提高Python程序性能,也可以避免不必要的资源浪费.今天就为大家带来七个可以提升python程序性能的好习惯,赶快来学习吧:. 1.使用局部变量 尽量使用局部变量代替全局变量:便 ...

  5. ReSharper Ultimate 2017 下载地址及破解方法

    https://download.jetbrains.8686c.com/resharper/JetBrains.ReSharperUltimate.2017.1.2.exe 安装完成后,打开vs   ...

  6. 22.解决 eclipse 与 AS 共用 SDK 导致 eclipse ADT 无法使用的问题

    相信很多同学在从eclipse 转 AS 都会遇到这个问题,因为方便所以共用了一个sdk 目录,但是AS 会主动更新sdk,然而手贱的跟新了一夜,再打开eclipse的时候瞬间呆滞了,这一夜发生什么了 ...

  7. Html5游戏开发-145行代码完成一个RPG小Demo

    lufy前辈写过<[代码艺术]17行代码的贪吃蛇小游戏>一文,忽悠了不少求知的兄弟进去阅读,阅读量当然是相当的大.今天我不仿也搞一个这样的教程,目地不在于忽悠人,而在于帮助他人. 先看de ...

  8. python学习笔记(二十)初识面向对象

    面向对象的编程的主要思想是把构成问题的各个事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在解决问题的过程中经历的步骤和行为.对象作为程序的基本单位,将程序和数据封装其中, ...

  9. PHP json_encode自动转码的问题

    用PHP的json_encode处理中文的时候, 中文会被编码成类似于"\u5f20\u4e09"的格式,例如: <?php $arr = array('张三','李四'); ...

  10. GlusterFS部署

    一.GlusterFS简介 PB级容量.高可用.读写性能.基于文件系统级别共享.分布式.无metadata(元数据)的存储方式. GlusterFS(GNU ClusterFile System)是一 ...