【LSP】版本控制系统之基于httpd搭建私有git仓库

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2020-10-10

我们知道对于git的仓库来讲,不外乎就是一个文件服务器,也就说git仓库可以使用传输文件的协议来把用户本地仓库中的代码推送到远程仓库进行保存,同时用户也可以从远处仓库拖代码到本地仓库;这是git仓库的最基本功能;常用的传输文件的协议有http、https、ftp、ssh等等,当然也有git本身的协议git来传输文件;好了下面我们来看一下基于httpd来搭建git的私有仓库对过程吧;

  环境准备



  在node02上安装httpd、git

创建git仓库目录,并使用git进行仓库初始化操作,并把对应的仓库属主属组修改成apache用户


  利用htpasswd工具生成密钥文件


  提示:这个密钥文件我们不需要更改属组和属主,只要保证启动httpd的用户有读的权限即可;

  新建一个配置,配置一个虚拟主机专门处理git仓库的请求

提示:servername表示虚拟主机的名称,这里可以是本机ip地址或主机名;SetEnv GIT_PROJECT_ROOT是用来指定git仓库的根地址映射到文件系统的目录,相当于httpd里的documentroot的意思;AuthUserFile用来指定用来验证的密钥文件地址;

  检查httpd的配置文件语法是否正确,如果没有问题就可以直接启动httpd了



  提示:可以看到httpd的配置文件语法是没有问题的,对应httpd也启动起来了,80端口已经正常监听;到此基于httpd的私有git仓库服务器就搭建好了;

  测试:在node01上安装git,然后到node02上克隆我们刚才在node02上创建的空仓库,看看能不能把它克隆下来?

  node01上安装git

1
[root@node01 ~]# yum install -y git
  克隆node02上的git-test.git项目到本地



  提示:这里需要注意,如果使用主机名访问,需要在hosts文件中把对应主机名进行解析;其次node01和node02要正常通信,防火墙都允许node01访问;从上面的反馈可以看到在node01上使用git命令是能够正常的把node02上的项目克隆到本地;

  验证:在node01上新添加几个文件到刚才克隆的项目中,然后把它提交,再push到node02的仓库中,看看是否能够将更改后的项目推送到node02的指定仓库呢?


  提示:这里push它告诉我们没有设置push.default这个配置;

  解决办法

  提示:我们提交时它告诉我们没有任何更新;

  解决办法

  提示:这里提示我们默认仓库不允许push操作,要想使用push操作,需要在仓库中设置receive.denyCurrentBranch的配置为ignore;

  解决办法:到node02的对应仓库中加上上面提示的配置

  现在再用node01向node02执行push,看看还要是否可以将node01上的提交push到node02的仓库中去

  提示:这里还是提示我们没有什么更新;

  解决办法:使用git push origin master命令来推送

  好了,在node01上成功将提交后的项目推送到远端node02上了;

  在node02上验证,看看node02的仓库中是否能够看到对应的文件呢?

  提示:在node02上并不能使用ls命令列出文件,这其中的原因是push只是把node01中的对象库中的文件push到node02上;我们要查看对象库中的文件,可以使用git ls-files -s来查看;

  提示:使用git ls-files命令并没有看到任何内容,估计是只把对象库push过来,索引并没有指向任何版本;但使用git log能够清楚看到我们提交的版本和用户信息;

  验证:把node01上的git-test目录删除,然后再从node02上克隆,然后看看,克隆后的目录里是否有我们之前添加的文件?

  提示:可以看到现在重新从node02上把项目克隆到本地,本地目录中是有我们之前添加的文件,说明我们刚才的push操作是成功的;后续我们就可以在在这个项目中添加,修改,删除,然后再push到node02上进行存储;再次提交就可以直接使用git push命令进行提交了;如下所示

  在node02上查看日志看看是否有v2版本的提交日志?

  好了,在node02上能够看到第二次的提交日志;到此基于httpd的简单私有git仓库就搭建好了;这个git仓库功能非常简陋,只是支持把本地仓库的文件推送到远端存储,在远端服务器上不能够直接列出文件列表,在浏览器上也查看不了;

成为第一个回答人

评论

登录后才可发表内容
  • 主题

    124

  • 帖子

    0

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0717s Mem:2044Kb