• Ubuntu下 git 服务器的搭建【转】


    转自:http://www.open-open.com/lib/view/open1391477731082.html

    搭建git服务器的4个步骤

    1   配置服务器前的准备工作

    首先ubuntu系统要联网 安装了git,openssh-server和openssh-client软件,并检测是否开启。

    rpm -qa | grep -i git (查看是否安装git)

    sudo apt-get install git

    sudo apt-get install openssh-server

    sudo apt-get install openssh-client

    2   添加git 用户

    新加用户git,该用户将作为所有代码仓库和用户权限的管理者:

    geiao@ubuntu :~$ sudo useradd -m git

    geiao@ubuntu :~$ sudo passwd git

    建立一个git仓库的存储点,并且设置权限使除了git以外的用户对此目录无任何访问权限。

    geiao@ubuntu :~$ sudo mkdir /home/pro_j

    (建立个目录,作为存储点。)

    geiao@ubuntu :~$ sudo chown git:git /home/pro_j

    (把pro_j的权限给 git)

    geiao@ubuntu :~$ sudo chmod 755 /home/pro_j (将文件pro_j设置为 rwxr_xr_x 除了git以外的用户对此目录无任何访问权限)

    3   安装配置gitosis

    初始化服务器的git用户 可以用cat ~/.gitconfig 查看

    geiao@ubuntu :~$ git config --global user.name "your name"

    geiao@ubuntu :~$ git config --global user.email your email

    geiao@ubuntu :~$ cat ~/.gitconfig

    [user] name = zhang mingjie

        email = Jghost@yeah.net

    安装一下python的setuptool,也是为gitosis做准备:

    geiao@ubuntu :~$ sudo apt-get install python-setuptools

    获得gitosis包:

    geiao@ubuntu :~$ mkdir osis

    geiao@ubuntu :~$ cd osis

    geiao@ubuntu :~/osis$ git clone git://eagain.net/gitosis.git

    注意:执行上步骤会出错

    Cloning into gitosis...
    eagain.net[0: 208.78.102.120]: errno=Connection refused
    fatal: unable to connect a socket (Connection refused)

    可使用:git clone https://github.com/res0nat0r/gitosis.git代替

    geiao@ubuntu :~/osis$ cd gitosis

    geiao@ubuntu :~/osis/gitosis$ sudo python setup.py install 默认状态下,gitosis会将git仓库放在git用户home下的repositories中,所以要做个链接: geiao@ubuntu :~/osis/gitosis$ su git

    $ ln -s /home/pro_j /home/git/repositories

    $ exit

    成为管理员:无论是不是本机都可以通过生成ssh公钥的方法成为管理员

    geiao@ubuntu :~$ ssh-keygen -t rsa 生成的密钥可以通过在~/.ssh 文件中找到。

    在服务器上建管理员:

    geiao@ubuntu :~/osis/gitosis$ sudo chmod a+r ~/.ssh/id_rsa.pub

    [sudo] password for geiao:

    让gitosis运行起来:

    geiao@ubuntu :~/osis/gitosis$ sudo -H -u git gitosis-init< ~/.ssh/id_rsa.pub

    Initialized empty Git repository in /home/pro_j/gitosis-admin.git/

    Reinitialized existing Git repository in /home/pro_j/gitosis-admin.git/

    如果在另外的一台机子上建管理员,必须把那台机子的公钥(改名)拷到服务器上 然后修改上面划线操作的地址就行了。

    Gitosis 通过一个git仓库管理配置文件,仓库就放在/home/pro_j/gitosis-admin.git。因此要为一个文件加上可执行权限:

    geiao@ubuntu :/home/git$ sudo passwd root

    geiao@ubuntu :/home/git$ su

    root@ubuntu :/home/git# cd repositories

    root@ubuntu :/home/git/repositories# cd gitosis-admin.git

    root@ubuntu :/home/git/repositories/gitosis-admin.git# sudo chmod 755 /home/pro_j/gitosis-admin.git/hooks/post-update root@ubuntu :/home/git/repositories/gitosis-admin.git# exit

    4   管理gitosis的配置文件

    gitosis本身的配置也是通过git来实现的。在你自己的开发机里,把gitosis-admin.git这个仓库clone下来,就可以以管理员的身份修改配置了。

    geiao@ubuntu :~$ cd osis

    geiao@ubuntu :~/osis$ mkdir pro

    geiao@ubuntu :~/osis$ cd pro

    geiao@ubuntu :~/osis/pro$ git clone git@服务器ip:gitosis-admin.git

    geiao@ubuntu :~/osis/pro$ cd gitosis-admin

    geiao@ubuntu :~/osis/pro/gitosis-admin$ ls

    gitosis.conf keydir

    gitosis.conf文件和keydir文件夹

    gitosi.conf文件主要的作用是管理员可以编写其他人的权限,可以编写对gitosis-admin的成员,也可以编写对仓库的权限 :writable和 readonly . 这里设置权限 可以建立group设置。

    keydir 文件夹是存放其他人公钥的地方。而且必须注意 谁的公钥谁的名字的要求来存放。

    geiao@ubuntu :~/osis/pro/gitosis-admin/keydir$ ls geiao@ubuntu.pub jghost.pub 否则在会出现:

    ERROR:gitosis.serve.main:Repository read access denied

    配置好后一定要做的操作事提交gitosis-admin的 改动,并commit 然后 git push 一下; 而且你不需要在服务器上建好一个空仓库,再导入项目。 Gitosis会在你建好项目推送到服务器上时自动创建。 然后就可以建立个项目 如proj.git(这点比较重要)

    geiao@ubuntu :~/osis/pro$ mkdir proj

    geiao@ubuntu :~/osis/pro$ cd proj

    geiao@ubuntu :~/osis/pro/proj$ git init

    Initialized empty Git repository in /home/geiao/osis/pro/proj/.git/

    geiao@ubuntu :~/osis/pro/proj$ touch README

    geiao@ubuntu :~/osis/pro/proj$ git add README

    geiao@ubuntu :~/osis/pro/proj$ git commit -a -m "add readme"

    geiao@ubuntu :~/osis/pro/proj$ git remote add origin git@10.10.4.229:proj.git

    geiao@ubuntu :~/osis/pro/proj$ git push origin master

    到此, 在ubuntu上建立git服务器基本上完成。 

    原文地址:http://blog.chinaunix.net/uid-20620288-id-3152615.html

  • 相关阅读:
    elasticsearch 心得
    elasticsearch window下配置安装
    centos 配置sentry+钉钉+邮件通知
    git 多账户链接不同gitlab仓库
    git 配置远程仓库(同一个邮箱注册多个gitlab仓库)
    配置git远程连接gitlab
    上传模型方法-断点续传方法
    three.js group遍历方法
    sql 行转列超快方法
    赴日本IT的相关注意事项和坑!!!!
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/5179575.html
Copyright © 2020-2023  润新知