zoukankan      html  css  js  c++  java
  • 用gitolite搭建git server

    在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


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

  • 相关阅读:
    201571030330&201571030307《小学四则运算练习软件软件需求说明》结对项目报告
    201571030330 & 201571030307《小学四则运算练习软件》结对项目报告
    201571030307 四则远算
    个人学习总结
    201571030301 /201571030302《小学四则运算练习软件软件需求说明》结对项目报告
    201571030301/201571030302《小学生四则运算练习软件》结对项目报告
    201571030301 四则运算
    初读思考《构建之法-现代软件工程》
    个人学期总结
    201571030313/201571030312《小学四则运算练习软件软件需求说明》结对项目报告
  • 原文地址:https://www.cnblogs.com/ericchen/p/3463426.html
Copyright © 2011-2022 走看看