git服务器配置;
git-daemon
git-http-backend
一、git-daemon
1.通过安装yum安装git-daemon
# yum -y install git-daemon
2.将/var/lib/git这个目录,变成git仓库,即初始化一个裸仓库;
# cd /var/lib/git
# git init --bare
起初这个目录是没有文件的;初始化之后
3.启动服务
# systemctl start git.socket
//9418端口被监听
4.将远程服务器(172.16.1.14)中的仓库克隆到本地(172.16.1.13)
# git clone git://172.16.1.14/ xwlgit
//目录有了
//git仓库有了
5.进入本地git仓库中
//查看config文件
remote就是一个远程跟踪分支;
fetch:将远程服务器中的这个内容+refs/heads/复制成本地的这个内容refs/remotes/origin/,也即定义一个版本库与其他版本库的名称空间的映射关系;
refs/remotes下面所加的所有引用都叫做远程追踪分支,也就是通过refs/remotes/origin/*追踪的是位于远程某个仓库上的分支;而在复制的时候,也只能复制一个分支,通常都是复制master分支;
注意:基于git的共享仓库,默认只支持读操作,如果想要从本地git push文件到服务器,你还需要配置相关选项,并且配置比较麻烦;或者你通过ssh或者scp的方式将文件发送到服务器;如果想要实现一个能够动态更新的共享仓库,通过http协议是不错的;
二、git -httpd- backend
在git服务器上配置
1.首先yum安装httpd
# yum -y install httpd
他还需要支持三个模块: //我是在CentOS7上做,这三个模块默认支持,如果不支持,你需要自行全装;
alias_module (shared)
env_module (shared)
cgi_module (shared)
2.初始化一个仓库
# mkdir /var/www/git
# cd /var/www/git
//想要能够push文件,需要将目录所有者设置apache,让其对该目录有写权限
3.配置虚拟主机文件;
# vim /etc/httpd/conf.d/git.conf
4.创建认证文件
# htpasswd -c -m /etc/httpd/conf/.htpasswd tom
//会让你输入密码
5.在客户端设置hosts文件,让其能够正常的解析
# vim /etc/hosts
6.然后尝试克隆远程仓库到本地(客户端)
//会生成一个去掉.git结尾的test命名的文件
# cd /test
7.在客户端创建一个文件,随便写点东西,提交文件,并尝试push文件到服务器端;
注意:在推送之前,在服务器端的仓库根目录中,我这里是/var/www/git/test.git,添加一个参数
# cd /var/www/git/test.git
回到客户端:
# cd /root/test
# vim xwl
在客户端查看信息:
# cd /root/test
//本地分支是master,映射的远程分支是origin,所以git push的时候顺序别搞错
尝试push:
//箭头方向就是认证,输入刚才创建的用户以及密码即可
//服务器端有了文件
//这是push上来的提交文件
原文地址:http://blog.51cto.com/xuwenlong/2326789