SUSE下配置git注意事项

下载最新的git源码包,./configure、make、 make install,很顺利,期间的依赖包都可以用yast搞定。源码包中已经包含了gitweb。

 

本地访问的话问题不大,远程访问的话,需要注意2个问题:

1. 资源库下的hooks文件夹下post-update.sample需要去掉后缀,成为post-update(高版本git才会这样),并chmod 775 post-update。

2. 对资源库文件夹本身,也需要设置下访问权限,不然后边使用gitweb时会出现一刷新项目就不显示的问题。

 

gitweb比较好配置,直接修改gitweb.cgi文件就可以:

our $GIT = "/usr/bin/git";            

  指向正确的git可执行文件位置

our $projectroot = "/home/server/git-res";   

  指向正确的git资源库位置

our $export_ok = "";              

  这个保持空就可以,如果资源库中有不希望别人通过gitweb就可以看到的项目,那么可以写上GITWEB_EXPORT_OK。之后在资源库中想要显示的文件夹中的.git下使用touch GITWEB_EXPORT_OK,它就会显示在gitweb中了。

另外还有很多选项可以自定义gitweb界面的一些信息。

 

设置好之后在apache2中的vhost.d中建立一个xxxx.conf文件(名字随便了,只要后缀是conf就可以),加入一台虚拟主机,配置如:

<VirtualHost *:8080>
    ServerName gitserver
    DocumentRoot /var/www/gitweb
    <Directory /var/www/gitweb>
        Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
        AllowOverride All
        order allow,deny
        Allow from all
        AddHandler cgi-script cgi
        DirectoryIndex gitweb.cgi
    </Directory>
</VirtualHost>

再在listen.conf中加入8080端口
重启下apach2就可以使用了。

 

另外只有用ssh方式访问git的用户才能有推送的权限(假设他对资源库有写的权限的话),其他方式的都会失败,git-daemon设置好参数应该也是可以的,但git本身的访问权限不好控制。

因此还是使用ssh来做访问控制。

 

参考站:http://progit.org/book/zh/

 

你可能感兴趣的:(SuSE)