按如下步骤一步一步来:
一、 Linux 服务端
1. 安装 git
$ yum install git
2. 安装 gitosis
$ yum install python python-setuptools
$ git clone git://github.com/res0nat0r/gitosis.git
$ cd gitosis 目录
$ python setup.py install
二、 windows 客户端
1. 安装工具
1> Git-1.9.4-preview20140929
2> TortoiseGit-1.8.12.0-32bit
安装的时候,选择 TortoiseGit 自带的 TortoisePlink.exe, 作为 SSH 客户端
2. 进入 Git Bash 命令下, 生成 SSH 密钥
ssh-keygen -t rsa # 一路回车, 此时根目录 .ssh 下将生成如下连个文件
文件:
id_rsa # 私密钥(开发电脑上使用)
id_rsa.pub # 公共密钥(git服务器上使用)
3. 打开 TortoiseGit 带的 PuTTYgen 工具
1> 打开 PuTTYgen ,选择 Load 按钮,从 ~/.ssh 目录下,加载私有的密钥 id_rsa,
此时 puTTYgen 将生成 OpenSSH 公有密钥的字符串(复制所有字符串,保存到文件中,
网上一些开源的 git 服务器会用到,比如:https://github.com/)
2> 点击 Save private key,生成 TortoisePlink 需要的 ppk 文件
三、搭建用 gitosis 管理 git服务器的 key 流程
1. 将 windows 下生成的 id_rsa.pub 上传到 Linux 服务器
2. 到 Linux 命令行下:
$ adduser git # 添加 git 用户
$ su git # 切换到 git 用户下
$ gitosis-init < /目录/id_rsa.pub # 初始化 gitosis (id_rsa.pub 为刚才从 windows 上,上传过来的文件)
3. 到 windows 下:
1> 右键菜单 TortoiseGit 使用 Git clone...
2> 在弹出的窗口
URL: git@你的git服务器IP地址:gitosis-admin.git
Load Putty key: 刚才生成的 ppk
3> 点击 OK 按钮,开始从 git服务器 clone
出现的问题:
如果此时显示一对话框提示说, git@你的git服务器IP地址:gitosis-admin.git,
要求输入密码,说明 key 有问题,请按本教程流程,再看一片,是否有错的步骤
4> clone 完后
有个 gitosis-admin 文件夹, 里面:
1) gitosis.conf 文件 # 保存项目名和 key 文件的
# 初始状态如下
[gitosis]
[group gitosis-admin]
# 此值,就是一开始把 id_rsa.pub 从 windows 上上传来,然后用 gitosis-init 生成的,
# 必须和 keydir 目录下的文件同名
members = 你的计算机名@localhost.localdomain
# 此值就是 gitosis-admin 项目的名称,也是用 gitosis-init 命令时生成的项目
writable = gitosis-admin
2) keydir
# 初始状态一个文件如下
你的计算机名@localhost.localdomain.pub
四、添加其他开发用户
1. 生成密钥(参照步骤:<二、 windows 客户端>)
2. 到 gitosis-admin 目录下(看一开始用哪台机器的 id_rsa.pub 初始化 gitosis-admin 的)
1> 把生成的公共密钥 复制 到 gitosis-admin 的 keydir 目录下,名字可以随便取,以 .pub 为后缀,如 xxx.pub
2> 修改 gitosis-admin 目录下 gitosis.conf,打开文件如下:
[gitosis]
[group gitosis-admin]
members = 你的计算机名@localhost.localdomain xxx # 此时 xxx 密钥对应开发机器也有了读写 gitosis-admin 的权限了
writable = gitosis-admin
[group yyy-proj] # 这个组名称不知道可以随便命名不,我还没试过,一般就和项目名称同名了
members = xxx # 此时 xxx 密钥对应开发机器对 yyy-proj 项目有了读写权限
writable = yyy-proj # 这是 xxx 密钥对应开发机器的项目名称
3. 项目 yyy-proj 的建立
1> Git Bash 命令行下建立
$ mkdir yyy-proj
$ cd yyy-proj
$ git init
$ vim 1.txt # 新建一个文件, 随便输入点内容
$ git add 1.txt
$ git commit -a -m "add 1.txt"
$ git push git@你的git服务器地址:yyy-proj.git master # 在 git服务器 上创建 master
此时如果用 TortoiseGit 进入目录下,右键菜单执行 push,
在弹出的对话框,选择 Manage 按钮,然后弹出 Remote 设置的
对话框:
Remote: 填写 origin
URL: 填写 git@你的git服务器地址:yyy-proj.git
2> 纯 TortoiseGit 建立
1) 建立项目文件夹 yyy-proj
2) 进入项目文件夹, 右键菜单 Git Create repository here...
3) 建立 1.txt 文件
4) 右键菜单 Git commit -> "master"
5) 提交 1.txt 文件后,右键菜单 TortoiseGit -> push
在弹出的对话框,选择 Manage 按钮,然后弹出 Remote 设置的
对话框:
Remote: 填写 origin
URL: 填写 git@你的git服务器地址:yyy-proj.git