- Git 数据传输协议:
- 本地传输
- SSH 协议
- Git 协议
- HTTP 协议
- SSH 是唯一同时支持读写操作的网络协议
一、 搭建Git-Server
- 本文主要搭建基于SSH协议的Git-Server
- 本文Git_server IP: 192.168.1.30
1. 安装 git python-setuptools
# 安装 gitosis 需要用到python-setuptools
yum install git python-setuptools -y
2. 安装gitosis
- Gitosis 是一套用来管理 authorized_keys 文件和实现简单连接限制的脚本.
- git-server添加用户和设定权限都是通过git仓库实现,修改完毕,推送后 ,Gitosis就会随之改变运行策略。
# gitossis 项目存放目录
cd /usr/src
# 克隆 gitosis 到本地
git clone git://github.com/res0nat0r/gitosis.git
# 通过 python 脚本安装 gitosis
cd gitosis/ && python setup.py install
3. 添加用户git
# 添加 git 用户
useradd -r -s /bin/sh -c 'git version control' -d /home/git git
chown git:git -R /home/git
4. 配置项目管理端
- 可以直接用客户端克隆管理仓库来做管理
但请记得把生成的公钥上传到sever端初始化gitosis
下文用 git-server(192.168.1.30)来做管理
# root用户下生成公钥
ssh-keygen -t rsa
# 复制公钥到临时存放目录
cp ~/.ssh/id_rsa.pub /tmp/admin.pub
#切换到git用户
su - git
#用公钥初始化 gitosis
gitosis-init < /tmp/admin.pub
#确保 post-update 权限
chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
#创建并克隆项目管理仓库
mkdir /git_admin/ -p && cd /git_admin/
git clone git@192.168.1.30:gitosis-admin.git
# 非SSH默认端口克隆命令,例 2222端口
# git clone ssh://192.168.1.30:2222/gitosis-admin.git
二. 新建项目 web-git
1. 添加项目开发者
# 在项目管理仓库内添加权限
cd /usr/local/git/gitosis-admin
# vim gitosis.conf
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = admin
#以下为添加
[group myteam] # 项目用户组名
writable = web-git # 项目名
members = admin # 开放 admin 对 web-git 的权限
# 同步推送到 Git_sever
git add . # 添加
git commit -am "Add web-git project users admin" # 备注
git push # 推送
2. 开发者初始化项目
# 创建项目存放目录
mkdir /data/web-git
chown git:git -R web-git/
# 在项目存放目录下初始化项目
cd /data/web-git
git init
# 创建 test.txt 测试文件
echo "test" >> test.txt
# 添加并同步提交到web-git项目
git add test.txt
git commit -am "the first commit is add test.txt"
git remove add origin ssh://git@192.168.1.30/web-git.git
git push origin master
三. 添加其它开发者
- 注意:gitosisi.conf 中的用户名和keydir下的密钥名称一定要相同
1. 开放开发权限
# 在项目管理仓库内
cd gitosis-admin/
#vim gitosis.conf
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = admin
[group myteam]
writable = web-git
members = admin penguin #添加项目开发者penguin
2. 添加开发者密钥
- 用户 penguin 已经在 win7 下通过 puttygen 生成密钥 详情
#创建penguin对应公钥文件
#vim keydir/penguin.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAgoh8sru+4E0mzZbqyR6OUXlk4/ksJF1G2vlAI9dPrDie2qAt2ZBPk6xPCeDE66YYMfY10gHKDqpFhBI+lUKo9vi
Qj1e5nNGNpKYEdEwCrZUtjlN9N80C1Zxg4jXqMERrpK2mFBGHEKMWW2ltvD9yGQnvsXaZH8BjTs56FmrEAbAZYZjjzJXLyBuf/6V2i5erW75HRVsx67oX8GY5Zd
GEUQA8a6uSyODGtFsl0jxzKwtO2ISrjTj+0psqSFTGxD5ELLqIWrmEBkmNr6NcFmkAq7AYTKEn3j06cIctfFaqppyLKWwarV90a2VY5SQK0vqwjZyqSM7hxw0jc
4F/AIpvyQ== rsa-key-20150901
# 同步推送到 Git_server
git add .
git commit -am "add user penguin"
git push
四. Win7 客户端配置详情
Win7 客户端安装及配置图文详情
- 至此,全部安装工作完成!