Git 服务器在Ubuntu 12.04上的搭建与使用体验
最近公司在推行研发管理流程改革,其中重要的一项就是启用版本管理工具,作为coder的我们当然会双手欢迎了,这样自己的代码可以在服务上面有备份,保证了代码安全,且利用版本管理工具可以实现代码的回溯和修改日志查询,最重要的是同事 之前不再进行手工代码合并了,经过一个礼拜的研究终于在公司的服务器上面搭建好了我们的Git版本管理系统,现将自己总结的搭建方法与大家分享,当然也感谢CSDN网友的支持,网络的力量两个字 “强大”。
推荐阅读:
准备工作:
1 一台服务器Server, 一台客户端Client,两台机器安装的都是Ubuntu12.04 LTS版本。
2 Server 和Client执行命令安装Git工具: apt-get install git git-core ,记得要使用root用户权限.
3 Server 端需要安装 openssh-server: apt-get install openssh-server
查看:ssh server是否启动:
ps -e | grep ssh
849 ? 00:00:00 sshd
1711 ? 00:00:00 ssh-agent
本人客户机使用了putty工具,远程操作服务器,且使用了scp命令在两台Linux机器之间直接拷贝文件,所以open-ssh服务是必须的。
安装前须知:
Gitosis 简介.
gitosis主要用来Git仓库的权限管理,默认情况下git也是有权限管理的,但是不太好用,或者用起来比较复杂,所以选择了gitosis第三方的权限 管理工具。使用Gitosis可以在GIt上面管理访问仓库的用户权限,允许某些用户访问指定的仓库,对指定的仓库拥有读写控制,gitosis 是基 于git的管理方式,服务器安装好gitosis以后,超级管理员的客户端PC就 "git clone gitosis" 到本地,以后的工作,比如新仓库创建,权限管理都是在 超级管理 员的PC上进的,超级管理员的PC修改gitosis的配置后,需要把修改项提交到服务器端,这样其他的用户才有权限从服务器获取到源码进行Git管理,需要注意的是新仓库的创建,权限的管理务必不要直接在Git服务器上面进行修改,超级管理员的PC才具有这些功能。
下图是Server端安装好的Gitosis图片:
下图是客户端PC执行命令把gitosis下载到本地后的图片,如何下载后面会详细说明.
上图中的其他文件夹是自己创建的git仓库,如何创建仓库 后续会有说明.
Git使用注意事项:
这里再次说明一下,如果新增加一个客户访问仓库权限,或者超级管理员新增加一个仓库,都需要在Client的机器上进行,然后再使用Git命令上传到服务器端,切不可在git服务器上面直接新增加用户或者创建仓库,笔者在这个事情上面花费的时间比较长,另外需要说明的是如果不想要某个仓库了, 可以在服务器上直接使用rm 命令删除掉,Client机器上也删除掉即可,其他的不需要改动,对了,一个仓库里面只有最顶层目录下面有.git文件夹,且只有一个.git隐藏文件夹,这个是跟SVN版本管理工具不同的地方,svn会在每个文件夹下面都有.svn隐藏文件,如果你在项目里面搜索到有多个.git隐藏文件夹很可以是项目以前采用了.git管理,如果是这样的话需要注意了,超级管理员在创建仓库前一定要删除掉项目中所有的.git隐藏文件夹,如果含有.svn文件夹也需要删除掉,笔者在Android源码中发现了大量的.git文件夹,在上传到Git服务器的时候一直不成功,或者丢失了文件,删除源代码中的.git文件夹后,再创建仓库,然后上传到中心服务器就OK了。
Gitweb的使用:
另外需要说明的是还有一种通过浏览器查看git仓库的方式,这种方式被称为gitweb, 这种方式是图形界面的,对网内的所有用户开放,也就是说局域网内所有人都可以浏览到仓库代码,可以下载代码,但是不可以在线修改代码,Linux的官方网站采用了gitweb方式,方便研发人员浏览代码。下图是笔者的PC通过gitweb 访问项目组内部GIt服务器的效果:
Git服务器IP:192.168.1.8 端口默认:1234
可以看到我的GIt服务器上面有四个仓库,包含gitosis-admin在内,点击 ok335x-source-pub仓库可以看到我的代码修改记录:
单击右边的commit可以知道这次提交改动了哪些文件,commitdff可以看到本次修改与修改前的代码差异, tree可以在线阅读代码,snapshot是代码快照,通过它可以下载到某次提交时的代码,可以做到代码回溯,是不是很方便呢..