ubuntu配置git服务器(gitosis)

参考网上资料搭建git服务器过程记录 如下:
 
服务器端:
硬件需求:一台Ubuntu或者debian电脑(虚拟机),能通过网络访问到。
软件需求:git-core, gitosis, openssh-server, openssh-client,
客户端:
硬件需求:Win7系统
软件需求:msysgit, tortoiseGit, copssh
 
一、服务器架设
1、安装软件
   sudo apt-get install git-core openssh-server openssh-client
 
2、安装gitosis
  a)安装python-setuptools
     sudo apt-get install python-setuptools  
  b)下载并安装gitosis
   mkdir ~/src
   cd ~/src
   cd gitosis
   sudo python setup.py install
 
3、增加git用户
   sudo adduser -m -s /bin/bash git         //创建git账号,用户家目录默认为/home/git,shell为/bin/bash
   sudo passwd git                                 //设置git用户的密码
 
4、初始化Git仓库
  1、初始化Git仓库需要一个建立一个管理员帐号,也是一个Git服务器的客户端用户,所以需要在客户端主机生成一个用户,并且生成ssh-key。
       在客户端安装ssh服务,包括客户端和服务端。
       a)客户端为windows的机器,使用git bash命令行:
            cd ~
            ssh-keygen -t rsa
          在用户家目录生成.ssh目录,有一对公私钥。
       b)Linux系统,在当前用户家目录中执行以上相同的命令,即可以生成当前用户的ssh-key。
   2、把ssh的公钥上传到服务器,我这里假设上传到服务器的临时目录/tmp。
        scp  ~/.ssh/id_rsa.pub git@server:/tmp    //命令中的server改成你自己服务器的IP
        (客户机为windows的可以通过中间目录来拷贝)
   3、初始化
        sudo -H -u git gitosis-init < /tmp/id_rsa.pub    //将git仓库目录初始化到了git用户家目录下
        此时,git用户的home目录中将出现repositories目录,该目录为git的仓库。
        修改目录权限:sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
   4、下载仓库配置项目gitosis-admin到本地客户端
        因为git仓库的配置文件都是以git方式来管理的,所以你需要先下载一份到客户端本地 。
        在你的用户目录下面创建一个临时目录work,
        然后 进入到该目录:cd work,
        然后执行命令:
        git clone git@ip:/home/git/repositories/gitosis-admin.git        // 命令中的ip改成你自己服务器的IP
   clone时不能用绝对路径,只能写相对于git用户home的相对路径
        错误:git@ip:gitosis-admin.git
        执行完成之后,work目录下会生成gitosis-admin目录,目录下面有一个gitosis.conf文件和一个keydir目录,它们将是下面配置任务的主要操作对象,请牢记它们的位置。 
 
5、新建项目
     1、修改配置文件gitosis.conf,增加如下内容。
            [group first-pro]        //用户组名
            members = jeff         //成员名,多个成员可以用空格隔开
            writable = first-pro    //项目名及其用户对于此项目的权限,目前是可写
            每次修改内容,需要提交才能生效。
             git add .
             git commit -m "somthing"
             git push
      2、创建项目目录
    先在服务端切换到git用户
                 su - git
                 mkdir first-pro.git
                 cd first-pro.git
                 git init --bare
              这样在客户端使用 git clone git@server:/home/git/repositories/first-pro.git克隆仓库到本地目录
                进入工作目录 cd first-pro
                创建工程文件 touch 1.txt   
       添加工程文件到本地仓库中 git add ./1.txt
                提交整个项目到本地仓库 git commit -m "comment"
                提交整个项目到远程仓库 git push origin master    //只有这样子,团队其他开发人员才能看到你修改的代码
                查看提交日志 git log
                查看本地库当前的状态,比如是否有文件需要提交。 git status
                新的项目仓库已经生成,其他开发人员可以git clone 命令从服务器上下载一份工程到自己的本地机器上,协同开发啦!
            
6、新建用户
     关于上一节最后提到的内容,“其他开发人员”,他们是需要管理员来增加和配置的,这一节主要讲怎么添加用户。
    1)客户端操作:
        首先要生成ssh-key,方法和前面说的一样。
        cd ~
         ssh-keygen -t rsa
         然后一直回车,就OK。然后将生成的id_rsa.pub文件传给GIT服务器管理员
     2)服务器端操作:
        管理员将客户上传的id_rsa.pub文件移到gitosis-admin/keydir目录中,并且改名为CLIENT_NAME.pub。
        文件名与配置文件里的名字要一样。例:用户的pub文件为jeff.pub
       给项目first-pro增加新的开发者,编辑gitosis.conf文件,vi gitosis.conf。
          [group first-pro]    //用户组名
          members = huixiao200068 jeff    //成员名,多个成员可以用空格隔开
          writable = first-pro    //项目名及其用户对于此项目的权限,目前是可写
      提交修改的管理文件:
      git add .
      git commit -a -m "add user jeff"
      git push origin master
 
      完成上述2步之后,即可以使用该账号共同开发项目first-pro啦!
        cd ~
        git clone git@SERVER:first-pro.git    //克隆项目到本地
        ……    //do anything you want to do
        commit -am "comment"
        commit push origin master
posted @ 2014-11-15 17:44  jeffkuang  阅读(376)  评论(0)    收藏  举报