前言

本地搭建git服务其环境

  • 新建管理员账号(用于单独管理仓库)

    1
    2
    useradd -m gitmanager
    passwd gitmanager
  • 下载安装git

    1
    2
    3
    apt-get install git
    ## 下载失败
    apt-get update
  • 安装openssh

    1
    apt-get install openssh-server openssh client
  • 下载gitosis

    1
    2
    3
    4
    5
    6
    7
    git clone https://github.com/res0nat0r/gitosis.git

    cd gitosis

    sudo python setup.py install
    ##未安装需要安装Python
    sudo apt-get install python
  • 创建项目仓库存储点

    1
    mkdir /home/gitServer
  • 管理员公钥 放入服务器

    1
    2
    3
    4
    5
    6
    7
    8
    9
    ###主机电脑上
    ssh-keygen -t rsa
    scp .ssh/id_rsa.pub gitmanager@ip:/home/gitmanager/id_rsa.pub

    ###追加其他人公钥至管理员
    $ cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys
    $ cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys
    $ cat /tmp/id_rsa.jessica.pub >> ~/.ssh/authorized_keys

    客户端用户执行

    1
    2
    3
    4
    5
    6
    7
    # 例如在 John 的电脑上
    $ cd myproject
    $ git init
    $ git add .
    $ git commit -m 'initial commit'
    $ git remote add origin your_name@gitserver:/opt/git/project.git
    $ git push origin master

服务器执行

  • 初始化仓库
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #本地登录服务器账户
    su gitmanager
    #或者远程ssh登录服务器
    ssh gitmanager@ip
    # 根据公钥初始化控制仓库
    gitosis-init < /home/gitmanager/id_rsa.pub

    # 克隆控制仓库到本地
    git clone gitmanager@ip:/home/gitmanager/repositories/gitosis-admin.git

服务器创建仓库

1
2
3
4
5
6
7
8
mkdir testproject
cd testproject
git init

git remote add origin gitmanage@ip:testproject.git
git push origin master
#或者
git clone gitmanage@ip:testproject.git
  • 映射链接

    1
    ln -s /home/gitServer/gitrepository /home/gitmanager/repositories
  • 设置仓库权限

    1
    2
    3
    chown gitmanage:gitmanager /home/gitServer/gitxxx

    chmod 700 /home/gitServer/gitxxx
  • 增加和去除子仓库

1
2
3
# 仓库地址为服务器地址
git submodule add <仓库地址> <路径>
git rm --cached hexo/themes/butterfly

参考网址