前言

本地搭建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

参考网址