奉老公之命在CentOS上搭建Git,从创建虚拟机开始,一步一步做起:
服务器:CentOS 6.5 + Git 2.1.3 + Gitosis
客户机:windows 8 + eclipse 3.8
1、新建一个虚拟机
参见:http://www.centoscn.com/image-text/setup/2013/0816/1263.html
2、安装CentOs系统
CentOs下载:http://www.centoscn.com/CentosSoft/iso/
安装说明参见:http://wenku.baidu.com/link?url=NlikZrojehbEDZ3WeKu3aBbSQzqTh-toQAmbWJsQCBIp4Ep-qr_XJxcAer4GbJ4SqO_qmYuXkiuAbtZJSZhySPczLwu6TEweXbgdmhSvIyK
3、安装Git
参见:http://www.centoscn.com/CentosServer/ftp/2014/0414/2789.html
git官网下载git-2.1.3.tar.gz,放在/usr/local/src下
#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
#tar zxvf git-2.1.3.tar.gz
#cd git-2.1.3
#make prefix=/usr/local/git all
引用
安装到这里如果出错:
/bin/sh: cc: command not found
网上查说是没有装gcc的原因,因此先装gcc
#yum install gcc
重新执行make prefix=/usr/local/git all又出下面这个问题,
http-push.c:17:19: warning: expat.h: No such file or directory
经查询需要安装expat-devel
# yum install expat-devel
#make prefix=/usr/local/git install
#git --version
引用
如果git不是命令,要把git路径添加到/etc/profile中
PATH=$PATH:.:/usr/local/git/bin
到这里Git就安装完成了,使用Git我试了两种方式,一种是直接用Git管理用户,一种是使用gitosis。使用gitosis的,在下一篇单独说明
4、创建git用户,并设置密码
#adduser git
#passwd git
5、创建git目录,并设置权限
#cd /home
#mkdir git
#chown git:git /home/git
6、添加客户端公钥
linux系统公钥用ssh-keygen生成,生成的公钥在~/.ssh目录下;windows的eclipse在“windows-->preferences-->General-->Network Connections-->SSH2-->Key Management-->Generate RSA Key”中save private key。
将公钥放在服务器上,假设已经放在tmp目录下:
# cd /tmp
# chown git:git id_rsa.pub
切换到git用户
#su git
$cd ~
$mkdir .ssh
$cd .ssh
$cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
7、创建空仓库
$git init --bare myproject
Initialized empty Git repository in /home/git/myproject/
建立空仓库后,客户端就可以给这个空仓库push资源了
引用
push资源的时候提示:
cannot execute: git-upload-pack或git-upload-pack: command not found错误:
参考:http://yanakil.blog.163.com/blog/static/479274182012725115710266/
是因为git默认安装路径不对,需要做一个链接,如下:
# ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack
bash: git-receive-pack: command not found
原因如上,再做个link
# ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack
权限控制参考:http://aoingl.iteye.com/blog/1365201。感觉如果要控制不同人读写不同项目,还是用gitosis要方便一些。
8、在eclipse上配置
参见:http://www.tuicool.com/articles/Ar6rMfm
1)安装EGit,不细说了,都会。
2)设置Git HOME:需要在系统环境变量中为Git提供一个HOME路径。这个目录将用于保存git的配置文件和默认的本地仓库。我这里使用的是F:\GitHome,当然你可以设置系统盘的任意路径。
3)配置git用户信息:在eclipse 》Preferences 》Team 》 Git 》Configuration 选项中配置git用户信息,在这个界面上你就可以看到eclipse使用了之前设置的HOME来保持git配置信息。(如果没改过来,重启eclipse)在界面上选择Add Entry… 添加用户信息key: user.email/Value:***、Key:user.name/Value:***。
4)配置SSH Home路径:当然这里还是使用Eclipse自带的SSH2工具(windows-->preferences-->General-->Network Connections-->SSH2-->Key Management-->Generate RSA Key)。SSH默认的Home在user/.ssh路径,为了方便管理,这里我使用了GitHome路径:F:/GitHom/.ssh。这里你依旧可以使用系统任意路径。
5)创建项目并提交到本地git仓库:正常创建项目。然后team -->share project-->Git,然后选择"Use or create repository in parent folder of project",再点"Create Repository",然后finish就可以了。
6)提交到本地git仓库:Team-->Commit,写好注释,选择要提交的文件,commit就可以。也可以commit and push,就直接提交到服务器上了。
7)push到服务器git仓库:Team-->Remote-->Push,在URI中输入服务器仓库的地址,例如:ssh://
[email protected]/home/git/myproject,输入git用户的密码,Next。在Source ref中选择是哪个分支,在Add All Branches Spec,再finish就ok了。