关于Git
对于Git,不想说太多,只说一点:
在SVN或其它集中式版本控制工具中,所有人的代码只能一步提交到中心代码库,而很多CI(自动化持续集成)工具会设定在一定时间间隔内对代码进行集成和布置。
因此,所有人只能在确定代码完全是正式的且无问题的情况下才能向代码库提交代码。
作为程序员,会有很多时候尝试各种方案解决问题,需要将各种方案进行实时保存并能在换一种方案后,仍能找回前一种方案。这本来是版本控制工具能够提供方便的地方。但在集中式版本控制工具中,这种优势无法使用。
对于Git或mecurial这类分布式版本控制工具中,就可以建立下面的拓扑结构:
每个人在自己的终端上维护一个本地的版本库,可以随意进行各种尝试,并能随时保存或找回代码,且不会影响组内的其他人。
在确认自己的代码可以在组内共享时,就可以提交到小组服务器,小组内可以以此服务器保持组内一致,进行代码的内部集成和测试等,不会对中心服务器有任何影响。
当所有的代码经过组内的严格测试和验收后,可以由小组服务器的维护人员将代码推送至中心服务器,成为主版本库的一部分。CI服务器仍然定时扫描中心服务器的代码是否有更新,据此进行集成和布置。
安装Git(Windows系统)
下载MSys Git
下载地址为:http://code.google.com/p/msysgit
下载后,打开安装包,一步步安装即可。其中Adjusting your PATH environment这一步,建议选择第二种方式:Run Git from Windows Command Prompt。
设置几个环境变量
在命令行下使用如下命令设置user.name,user.email,color.ui:
git config --global user.name "yourname" git config --global user.email "[email protected]"
git config --global color.ui "system"
使用如下命令查看设置是否成功:
git config –global –list
下载安装TortoiseGit
下载地址为:http://code.google.com/p/tortoisegit/
打开安装包,一步步安装即可。
Git的使用就不在这说了,太多资料了,下面进行Gitweb设置
首先,修改Apache的配置文件httpd.conf,添加如下一行:
Include conf/extra/httpd-git.conf
然后在Apache安装目录的conf/extra下建立httpd-git.conf文件,内容如下:
SetEnv GIT_PROJECT_ROOT "F:/kuaipan/Gitrepos" SetEnv GIT_HTTP_EXPORT_ALL 1 ScriptAlias /repos "C:/Program Files/Git/libexec/git-core/git-http-backend.exe/" <Directory "C:/Program Files/Git/libexec/git-core/"> Allow From All </Directory> <Location "/repos"> Order Allow,Deny Allow from all AuthType Basic AuthName "GIT Repository" AuthUserFile "C:/Program Files/Git/htpassword" Require valid-user </Location> Alias /gitweb "C:/Program Files/Git/share/gitweb" <Directory "C:/Program Files/Git/share/gitweb"> AddHandler cgi-script .cgi <Files ~ "\.cgi$"> Options +ExecCGI </Files> AllowOverride None Order allow,deny Allow from all DirectoryIndex gitweb.cgi </Directory>
第一行中的路径是准备用来存放Git库根目录的路径,第三行的路径中/repos用于将来用http协议访问,后面的路径是git-http-backend.exe的路径,具体安装位置就在Git的安装路径下的libexec/git-core中。
然后切换到Apache安装目录下的bin目录,使用Apache命令建立密码文件,注意路径要和上面的AuthUserFile所指定的路径一致:
htpasswd –cmd C:/Program Files/Git/htpassword abc 123456
接着,修改gitweb.cgi
第一行改为:
#!C:/Program Files/Git/bin/perl
注意,不能用另外安装的Perl如ActivePerl替换这个路径,gitweb.cgi不能在那些perl下动行。
将Git命令的变量改为git的命令文件的安装路径:
our $GIT = "C:/Program Files/Git/bin/git"
将项目的主路径改为准备存放库的根路径,这里要与httpd-git.conf中的库路径相同。
our $projectroot = "/F/kuaipan/Gitrepos"
注意,这里要用msysgit的语法来写,盘符后没有冒号。
建立库目录,打开f:\kuaipan\Gitrepos文件夹,建立一个XXX.git的子文件夹,打开此子文件夹,右击,选择Git Create repository here…
在弹出的对话框中,勾选Make it Bare (No working directories)
最后,启动Apache,就可以在浏览器中输入
利用web来查看和管理git。
也可以在TortoiseGit中直接使用
http://localhost/repos/xxx.git来访问刚刚建立的Git库。
如果出现 http 500 错误,就复制 C:/Program Files/Git/bin 下的 libicon-2.dll 文件到 C:/Program Files/Git/libexec/git-core。
参考文档:
https://git.wiki.kernel.org/index.php/MSysGit:GitWeb
http://www.haogongju.net/art/1671641
http://woodyhuang.iteye.com/blog/1485754
http://www.devbean.info/2011/10/apache-git-server-on-windows/
http://www.cnblogs.com/wangshuai901/archive/2012/02/22/2362924.html
http://www.2cto.com/os/201110/108858.html
http://my.oschina.net/u/174445/blog/37057
http://www.snooda.com/read/220
http://yp.oss.org.cn/software/show_resource.php?resource_id=1580
http://www.tech126.com/搭建gitweb环境/
http://www.humbug.in/docs/pro-git-book-zh/网页界面-gitweb.html#id3133501
http://www.haogongju.net/art/1671641 *
http://zengrong.net/post/tag/git
Gitweb在Linux下的安装,请参考 http://tom-cjp.iteye.com/blog/1005081