用gitolite搭建git server

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

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

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

个人server地址是192.168.137.100 github

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

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

由于gitolite 经过ssh进行通信和认证,因此须要先确保server端安装了ssh,我用了openssh:缓存

sodu apt-get install openssh-server openssh-clientbash

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

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


后面就本身高兴的搞去吧。。 

相关文章
相关标签/搜索