在RHEL 5.3(Tikanga)搭建Git

来源:互联网 发布:h3c防火墙web端口 编辑:程序博客网 时间:2024/06/05 04:42

一、下载并编译安装git
wget http://kernel.org/pub/software/scm/git/git-1.7.5.4.tar.bz2

(上面的下载地址可能已经失效,请使用 http://git-core.googlecode.com/files/git-1.7.9.tar.gz)

tar -xlvf git-1.7.5.4.tar.bz2
cd git-1.7.5.4
./configure --prefix=/usr/local/ (使用--prefix参数指定Git的安装路径)
make
sudo make install

 

使用下面的命令查看版本号确认git是否安装成功
git --version

 

二、安装gitosis(其实Git的权限管理器有gitosis和gitolite 请参考这篇文章:http://engineeredweb.com/blog/10/2/building-your-own-git-server 本人这里选择使用gitosis)


下载并安装setuptools
wget http://dl.atrpms.net/el5-i386/atrpms/stable/setuptools-0.6c2-5.0.el5.noarch.rpm
sudo rpm -ivh setuptools-0.6c2-5.0.el5.noarch.rpm


使用Git下载gitosis的源代码并安装(gitosis项目本身是使用Git管理源代码)
git clone git://eagain.net/gitosis.git
sudo python setup.py install

 

三、客户端生成密钥(这一步骤的前提是在客户端需要根据不同的操作系统安装Git 这里附上下载地址:http://git-scm.com/,建议安装绿色版 http://code.google.com/p/msysgit/downloads/detail?name=PortableGit-1.7.9-preview20120201.7z
在.ssh目录下使用如下命令生成私有/公有密钥对:

ssh-keygen -t rsa
然后将生成的公有密钥id_rsa.pub拷贝到服务器端/tmp/目录下

 

附上Windows客户端详细的操作步骤:

打开C:/Documents and Settings/Administrator/.ssh目录(若没有.ssh目录 可以新建)

右键单击Git Bash 然后再执行ssh-keygen -t rsa命令

执行成功之后 可以使用Putty自带的PSFTP将id_rsa.pub上传到服务器端

 

(如果.ssh目录下有多对私有/公有密钥对或者打算使用已有的密钥对 那么请在该目录下建立名为config的ssh配置文件来指定:
Host www.gitserver.com
User git
Port 22
Hostname www.gitserver.com
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes


这里解释一下IdentitiesOnly配置项:

can be used to limit the keys that ssh offers to the remote sshd to just those specified via IdentityFile keywords (i.e. it will refuse to use any additional keys that happen to be loaded into an active ssh-agent)

四、配置gitosis

建立名为git的账户
sudo /usr/sbin/adduser git


sudo su - git
gitosis-init < /tmp/id_rsa.pub
若运行成功将获得如下输出:
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/

 

chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

 

五、在客户端建立代码仓库并同步到Git服务器

git clone git@www.gitserver.com:gitosis-admin.git

 

vim gitosis.conf
[group android-projects]
writable = android-projects
members = Administrator@LEI(这里填写的值需要和gitosis-admin/keydir目录下对应的文件名字一致)

git commit -a -m "Allow Administrator@LEI write access to android-projects"
git push

 

mkdir android-projects
cd android-projects
touch README.txt
git add .
git commit -a -m "Initialize android-projects"
git remote add origin git@www.gitserver.com:android-projects.git
git push origin master

原创粉丝点击