您的位置:首页 > 其它

Ubuntu 16.x搭建Git服务器

2017-09-19 22:25 239 查看

引言

最近项目准备迁移要git做版本管理,就先学了git的使用,在学会了git的一些基本知识以及搭建git仓库的方法后,就想如果要让其他开发的人员也能访问到自己的仓库,就需要将仓库设置为远程仓库,那么就要搭建服务器来进行访问。访问git的服务器一般是选用SSH链接方式。

于是我就先尝试在windows上搭建服务器,发现真是入了大坑呀,支持ssh访问的服务器搭建好了,可就是用git clone时怎么也访问不到远程仓库,整了好久都没整明白,最后还是决定选择在linux系统上搭建git服务器

我选择了使用ubuntu来搭建,系统装在虚拟机里,最后终于能访问到了,真是开心呐!就把我遇到的一些问题分享给大家供参考

具体搭建流程

搭建的方法在网上有很多,我这里就不具体说了,只是把一些关键的地方提一下,并把我遇到的问题也总结一下

1. 我这里参考了几个搭建流程的教程

http://await.leanote.com/post/ubuntu%E6%90%AD%E5%BB%BAgit%E6%9C%8D%E5%8A%A1%E5%99%A8-2

这里对其中的一些步骤做一些解释

1.1 访问远程仓库的权限管理

权限管理是用到了gitosis这个库,其实里面存放管理权限的目录也是一个git仓库,在ubuntu系统里的自定义目录下将这个仓库clone下来,将允许访问用户的key,即用ssh生成的pub文件放到里面并配置好读写权限,就可以了。

1.2 在ubuntu下使用ssh-keygen生成key时,按正常情况是生成到用户目录下的.ssh目录中,但有可能存在一些问题,会直接生成到用户目录下,具体原因还不是很清楚。如果想让其直接生成到.ssh目录下,可以先用命令行删除.ssh文件夹后,重新创建就可以了

1.3 关于教程中创建在/home/下,供自己使用的repo的目录操作权限问题



该目录由于是在/home/下创建的,只有root用户有操作权限。如果用root用户创建了git仓库,那么这个仓库目录的访问权限就变为了只有root可读写,那么在clone远程仓库时,如果输入的服务器地址中的serverUsername不是root,就会出问题。

如果是使用新加的用于管理git项目的管理员用户,在进行了对于上述/home/repo/的目录映射后,在如下图的/home/git/repositories目录中创建git仓库,那么clone仓库时username使用该git管理员用户,就没有问题了。

目录映射的命令如下图:



2. 服务器配好后,需要将要访问链接的用户的ssh key放到权限管理配置中

使用ssh为对应的用户生成key之后,把pub文件拷到教程中说的keyDir目录下,之后就是在gitosis.conf中配置权限访问信息,如下图:



3. clone远程仓库的地址问题

配置好git服务器并且添加了用户key之后,创建一个远程仓库,就可以尝试能否clone出来了。

在clone时,一个重要的问题就是如何书写服务器地址呢,地址格式一般是[serverUsername]@[serverIp]:/[gitDir]/

3.1 serverUsername就是要登录的服务器的用户名,git的仓库放在该用户的目录下,比如上面教程中创建的git用户

3.2 这里重点要说下serverIp的配置

如果要在作为服务器的ubuntu下clone仓库

由于是在本地clone,那么直接写localhost就可以

如果是在本机windows下clone仓库

由于ubuntu是在虚拟机上跑,并且如果设置其联网的方式为与宿主机共享ip,这并不代表ubuntu下的ip就是和宿主机的一致。这时就要查ubuntu联网的实际ip了,在系统中用命令ifconfig -a查询,就能查到了,之后可以在宿主机windows上ping下查到的ip,能ping成功证明就能访问到啦

3.3 gitDir就是你在这个服务器用户的哪个目录下创建的git仓库,这个就很好理解了

现在知道了如何书写服务器地址,就可以尝试clone啦。应该能成功clone。

另外附上一个我参考的地址,其实和上面的过程基本一样:

http://www.jianshu.com/p/d03efd263fe2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git git服务器 ubuntu