转载须注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/12451715 这里使用的操作系统是CentOS release 5.9 (Final),并且已经安装了Git和一些必要的开发工具。 在服务器上创建用户和项目仓库(repository)clone项目并提交修改(本地)clone 需要说明的是这里会要求输入用户git的密码,我们稍后建立主机信任后就不需要输入密码了.然后在cube下创建一个README.txt
建立主机信任关系
在本地执行
拷贝文件公钥内容
在服务器执行
要注意文件权限的问题. 使用gitosis来配置和管理git服务端
当服务端项目和用户数量增多时, 管理将变得复杂起来,好在有gitosis.
初始化gitosis
在本地执行
在服务端执行
在本地配置gitosis-admin
clone到本地后会有一个keydir文件夹和一个gitosis.conf文件,前者保存着git用户的公钥后者是配置文件,其配置文件通常的结构如下: [gitosis] gitweb = yes #开启gitweb支持 [repo foobar] description = Git repository for foobar owner = user [group devs] #一个用户组 members = user1 user2 [group admins] members = user1 [group gitosis-admin] writable = gitosis-admin members = @admins [group foobar] writable = foobar members = @devs [group myteam] writable = free_monkey members = jdoe [group deployer] writable = free_monkey readonly = monkey_deployer关于配置文件的详细介绍在https://wiki.archlinux.org/index.php/gitosis#Repositories_and_permissions 使用gitosis创建项目
在gitosis.conf中添加如下内容:
提交项目到服务器 然后在本地创建项目目录 开启gitweb支持gitweb是一个简单的可视化网页界面,可以使用任何兼容CGI的网页服务来运行,这里选用的Apache下载编译安装需要注意的是GITWEB_PROJECTROOT应该修改成你的仓库的路径,并且其权限(包括子目录)应是705。
然后修改/etc/gitweb.conf,改成下面的样子
修改apache配置文件
在/etc/httpd/conf/httpd.conf中加入以下内容:
可能遇到的问题用户认证不通过的问题:
git clone git@IP:gitosis-admin.git
Initialized empty Git repository in /home/yang/gitosis-admin/.git/ Agent admitted failure to sign using the key. Permission denied (publickey). fatal: The remote end hung up unexpectedly // 解决方法,在管理员PC上 # ssh-add ~/.ssh/id_rsa gitweb找不到工程的问题
如果遇到gieweb的页面显示找不到工程,多半是权限设置错误。
简单的说就是Apache用户组不具备访问你仓库目录的权限,例如我的仓库是放在/home/git/repositories下的,所以应将/home/git和/home/git/repositories以及你仓库中的所有项目的权限都设置成705,之前在网上发现有人说设置成775的,如果你设置成775的话虽然也能用,但会导致无法使用命令访问代码仓库,原因我还不清楚。之前的写错了,所以在这更正下。
(责任编辑:IT) |