一、写在前面的话:
最近对git 很有兴趣。《git 权威指南》这本书写的很详细,还没啃完。突然有个想法:搭建个git服务器,模拟团队开发。网上找了很多相关的,其实最后还得自己实践一下,期间碰到的各种问题,只有亲自经历,才感觉弥足珍贵。
二、总体设想
1)资源:pc一台(windows)、Eclipse(装有egit插件)、用vmware虚拟出一台机器(centos7 + 安装有git)
2)在虚拟机上搭建git服务器 -----> 从eclipse的git repositories中 clone 虚拟机上的git仓库 ------> 在仓库上Import porjects 一个全新的项目
三、步骤
1)在虚拟机上安装git (略过)
2)创建一个用户(比如就叫git),用现有的除root用户外的用户也行。
3)一般创建了用户后,在 /home目录下会有个跟用户名相同的目录,用以存放该用户相关的东东(除非你把这个目录删掉了) ;在该目录下有一个 .ssh 的隐藏目录(如果没有,新建,并把目录的拥有者、组别改成上面刚创建的用户的一致);在 .ssh 目录下有个文件叫:authorized_keys(如果没有,新建,把该文件的拥有者、组别也改成刚创建的用户的一致)
4)在Eclipse中,window -> Prefecence -> General -> Network Connections -> SSH2 -> Key Management -> Genarate RSA key ,将生成的公钥内容想办法弄到上面的authorized_keys文件中
5)创建一个空的git仓库,不建议在 /home/用户目录下,比如 /srv/sample.git 。
cd /srv
git init --bare sample.git
6)设置sample.git的组别和拥有者为刚创建的用户(加 -R 用以包装子目录和文件也被修改,不然后面会的操作会出现这样的错误提示:unpack-objects abnormal exit)
chown -R 组:用户 sample.git
7) 一般都会出于安全考虑,禁用shell 。不过我这一步直接跳过,因为设置了此项后面就连接不上(不知道是设置的不对还是咋的)
vi /etc/passwd
把 jack:x:1000:1000:CentOS 7:/home/jack:/bin/bash
改成 jack:x:1000:1000:CentOS 7:/home/jack:/usr/bash/git-shell
至此,三步走的第一步已经完成。
8) 在Eclipse 中调出视图 Git Repositories ,点击这个:
9)类似填写
9)next
当然,我这里已经有master 了,不然是一个空库,不管它,next
10)选择一个目录作为本地库,finish
在 Git Repositories 视图中就有了我们clone 的库,至此,三步走的第二步完成。
11)在本地库上,右键,Import Project
12) 选择 新项目 ,finish
剩下的就是新建项目的内容,应该很熟了。如果出现这个,不管它,ok
13)在刚才新建的项目上右键 -> Team -> share Project ,选 git
14) 选中本地库,finish
ok ,大功告成。接下来就可以使用egit来提交、推送了。
小项目几个人可以用上面的authorized_keys文件来管理成员的公钥,免去了提交时每次都要输入密码的烦恼。人多的项目可以考虑使用用过工具:gitosis来管理公钥哦