最近,因为总部要求用Git管理代码,为了将以前用Visual Studio Team Foundation Server2010管理的代码顺利切换到Git(说来惭愧,后来我才知道TFS2013内置Git服务),我试着在Ubuntu14上搭建了一个Git服务以方便测试,现把过程总结如下。
1.更新包源:sudo apt-get update,然后参看“http://blog.csdn.net/u012588561/article/details/52578676”安装GITOSIS,使得SSH方式能够访问GIT。 2.输入sudo apt-get install apache2安装Web服务器,然后参看“http://blog.csdn.net/a623891391/article/details/47170355”启用CGI。 3.安装gitweb:sudo apt-get install gitweb,然后修改配置: sudo vi /etc/gitweb.conf 将 $projectroot 改为gitosis-admin.git所在目录:/home/git/repositories 4.修改apache2的配置文件 sudo vi /etc/apache2/apache2.conf 在文件的末尾添加如下内容 Alias /gitweb /usr/share/gitweb # Redirect permanent /repos /gitweb <Directory /usr/share/gitweb> Options +FollowSymLinks +ExecCGI AddHandler cgi-script .cgi AuthType Basic AuthName "Restricted Files" AuthUserFile /opt/access/git.passwd Require valid-user </Directory> SetEnv GIT_PROJECT_ROOT /home/git/repositories SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias /repos/ /usr/lib/git-core/git-http-backend/ <Location /repos/> AuthType Basic AuthName "Git Access" AuthUserFile /opt/access/git.passwd Require valid-user </Location> 5.生成授权文件 sudo apt-get install apache2-utils sudo mkdir /opt/access cd /usr/share/bash-completion/completions sudo htpasswd -c /opt/access/git.passwd pcbeta(pcbeta为要访问git仓库的用户名,如果不是首次添加的话,则不要-c参数) 6.访问代码库 重新启动apache2 sudo /etc/init.d/apache2 restart 只读访问Web页面 http://localhost/gitweb 克隆代码库 git clone http://localhost/repos/test.git 7.修改权限,以支持代码上传 sudo usermod -a -G git www-data sudo chmod g+rw /home/repo 重新启动apache2 sudo /etc/init.d/apache2 restart 代码上传 git push origin master 8.Git的使用 a.Visual Studio使用Git的方法请参见http://m.w2bc.com/article/180738。 b.Git命令行是王道,参见http://www.cnblogs.com/cspku/articles/Git_cmds.html。 c.多个远程库支持参见http://www.aikaiyuan.com/6294.html。 d.多个远程库操作需要使用Visual Studio2015。 f.分支是GIT的一个特色,因为各分支间的代码同步操作都是针对“当前分支”的,所以一定要注意适时用“check out”切换“current branch”。