#GIT安装配置
1.下载并安装git
wget http:///pub/software/scm/git/git-1.7.3.2.tar.bz2
tar zxvf git-1.7.3.2.tar.bz2
cd git-1.7.3.2
./configure
make && make install
2.下载并安装python
(服务器已经安装python2.4,该步骤省略)
3.下载并安装setuptools
# yum install python-setuptools #如果有yum,可直接执行
如果没有,到http://pypi./pypi/setuptools下载对应python版本的setuptools并安装
4.下载安装gitosis
git clone git://eagain.net/gitosis.git
cd gitosis
python setup.py install
5.添加git用户
groupadd git
useradd -b /home/ -m -g git -s /bin/bash -c 'git version control' git
cd /home/git/repositories
[root@localhost repositories]# mkdir msnt.git
[root@localhost repositories]# cd msnt.git/
[root@localhost msnt.git]# ll
total 0
[root@localhost msnt.git]# git init --bare
Initialized empty Git repository in /home/git/repositories/msnt.git/
[root@localhost msnt.git]# ll
total 32
drwxr-xr-x 2 root root 4096 Dec 20 10:07 branches
-rw-r--r-- 1 root root 66 Dec 20 10:07 config
-rw-r--r-- 1 root root 73 Dec 20 10:07 description
-rw-r--r-- 1 root root 23 Dec 20 10:07 HEAD
drwxr-xr-x 2 root root 4096 Dec 20 10:07 hooks
drwxr-xr-x 2 root root 4096 Dec 20 10:07 info
drwxr-xr-x 4 root root 4096 Dec 20 10:07 objects
drwxr-xr-x 4 root root 4096 Dec 20 10:07 refs
cd msnt/
git clonehttp://hi./mailto:git@localhost:repositories:/msnt.git
echo "<?php phpinfo();" > index.php
git add .
git commit -m 'init project'
[root@localhost msnt]# git push origin master
git@localhost's password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 221 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@localhost:repositories/msnt.git
* [new branch] master -> master
[root@localhost msnt]# ll
total 4
-rw-r--r-- 1 root root 17 Dec 20 10:08 index.php
[root@localhost msnt]# cd ..
[root@localhost temp]# rm -rf *
[root@localhost temp]# ll
total 0
[root@localhost temp]# git clone git@localhost:repositories/msnt.git
Cloning into msnt...
git@localhost's password:
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
[root@localhost temp]# ll
total 4
drwxr-xr-x 3 root root 4096 Dec 20 10:10 msnt
[root@localhost temp]# cd msnt/
[root@localhost msnt]# ll
total 4
-rw-r--r-- 1 root root 17 Dec 20 10:10 index.php
6.生成密钥,初始化gitosis
su git
cd
ssh-keygen -t rsa #按提示生成
gitosis-init < .ssh/id_rsa.pub #< /tmp/id_rsa.pub
chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
7.通过git来完成gitosis的设置
#打开一个终端,使用其它用户登录
mkdir ~/workspace
cd workspace
git clone git@localhost:repositories/gitosis-admin.git
cd gitosis-admin
#进入git控制目录,可以看到:
#gitosis.conf #文件用来添加项目,配置项目成员,
#keydir #目录用来存放项目成员key
8.在客户端添加新项目
vi gitosis.conf
#create a new repo, we just authorize writing to it and push. To do so, add this to gitosis.conf:
可以看到结构如下
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = git@localhost
#添加项目msnt
[group msnt]
writable = msnt
members = leon
#vi中按esc :wq回车,完成保存退出,再push回git服务器
git push
cd ~/workspace
mkdir msnt
9.测试git服务器
cd ..
rm -rf msnt
git clone git@localhost:/repositories/msnt.git
10.添加git用户
ssh-keygen -t rsa
#操作完成添加到gitosis-admin.git/keydirs目录
git commit -a -m "添加项目成员xxx"
git push
10.开放公网访问
网上下载git-daemon对应git版本RPM安装包,也可直接安装
详细设置查看git help daemon或:http://www./pub/software/scm/git/docs/git-daemon.html
yum install git-daemon 或apt-get install git-daemon-run
vi /etc/xinetd.d/git #该文件在不同系统下不一样vi /etc/xinetd.d/git-daemon/
service git
{
disable = no
type = UNLISTED
port = 9184
socket_type = stream
wait = no
user = git
server = /usr/libexec/git-core/git-daemon
server_args = --base-path=/home/git/repositories --export-all --user-path=/home/git/repositories --syslog --inetd --verbose
log_on_failure += USERID
}
git daemon --verbose --base-path=/home/git/repositories/ --export-all
git clone git://YOUR_SERVER_HOSTNAME/msnt.git