一、安装环境 ubuntu
二、需要安装的软件 git、openssh-server、openssh-client 和 gitosis
1、git 安装
命令:sudo apt-get install git
查看是否安装成功
命令: git --version
git version 1.9.1
一般git默认安装路径有两个 :/usr/share/git-core或者/usr/local/git
2、安装openssh-server
命令:sudo apt-get install openssh-server
3、安装openssh-client
命令:sudo apt-get install openssh-client
如果安装提示错误可先执行
命令:sudo apt-get update
4、安装gitosis
命令:sudo apt-get install python-setuptools
命令:git clone https://github.com/res0nat0r/gitosis.git 此操作会在根目录下新增gitosis文件夹
命令: cd gitosis/
命令: sudo python setup.py install
默认 Gitosis 会把 /home/git 作为存储所有 Git 仓库的根目录
5、配置git账号名和邮箱
命令: git config --global user.name "xxx"
命令:git config --global user.email "xxx@xx.com"
6、创建git用户
命令: sudo useradd -m git
命令: sudo passwd git
6、在管理员机器(客户端)生成秘钥
命令:ssh-keygen -t rsa # 这里会提示输入密码,我们不输入直接回车即可
把生成的id_rsa.pub拷到git账户下,比如 /home/git/,用这个key来初始化git仓库
7、切换用户 su git # 输入密码,切到git用户
命令: sudo chmod a+r /home/git/id_rsa.pub
命令 : sudo -H -u git gitosis-init < /home/git/id_rsa.pub
(如果出现此提示:git is not in the sudoers file. This incident will be reported.这个用户没有用sudo的权限,需修改/etc/sudoers)
8、权限修改
命令 :sudo chown git:git /home/git/repositories
命令 : sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
命令 :sudo chmod 755 /home/git/repositories
9、下载仓库配置项目gitosis-admin到本地客户端
因为git仓库的配置文件都是以git方式来管理的,所以你需要先下载一份到客户端本地 。
在你的用户目录下面创建一个临时目录,
然后 进入到该目录
然后执行命令:
git clone git@ip:/home/git/repositories/gitosis-admin.git // 命令中的ip改成你自己服务器的IP
执行完成之后,目录下会生成gitosis-admin目录,目录下面有一个gitosis.conf文件和一个keydir目 录,它们将是下面配置任务的主要操作对象,请牢记它们的位置。
10、在服务器新建测试仓库
命令 :cd /home/git/repositories/
命令 :git init --bare repo1.git
11、修改配置文件gitosis.conf,增加如下内容。
[group repo1] //用户组名
members = zs//成员名,多个成员可以用空格隔开
writable = repo1 //项目名及其用户对于此项目的权限,目前是可写
每次修改内容,需要提交才能生效。
git add .
git commit -m "somthing"
git push
ok!!!!!!!!!
新建用户
1)客户端操作:
首先要生成ssh-key,方法和前面说的一样。
ssh-keygen -t rsa
然后一直回车,就OK。然后将生成的id_rsa.pub文件传给GIT服务器管理员
2)服务器端操作:
管理员将客户上传的id_rsa.pub文件移到gitosis-admin/keydir目录中,并且改名为CLIENT_NAME.pub。
文件名与配置文件里的名字要一样。例:用户的pub文件为zx.pub
给项目repo1增加新的开发者,编辑gitosis.conf文件,vi gitosis.conf。
[group repo1] //用户组名
members = zx //成员名,多个成员可以用空格隔开
writable =repo1 //项目名及其用户对于此项目的权限,目前是可写
提交修改的管理文件:
git add .
git commit -a -m "add user zx "
git push origin master
完成后
git clone git@SERVER:repo1.git //克隆项目到本地
…… //do anything you want to do
commit -am "comment"
commit push origin master