Ubuntu 16.x搭建Git服务器

引言

最近项目准备迁移要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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu 22.04上部署Git服务器的步骤如下: 1. 首先,通过以下命令安装Git: ``` sudo apt-get install -y git ``` 2. 创建一个用于管理Git服务的用户,可以使用以下命令添加一个名为"git"的用户: ``` sudo adduser git ``` 3. 接下来,你可以设置Git仓库的路径。你可以选择在git用户的家目录下创建一个目录来存储仓库,比如: ``` sudo mkdir /home/git/repositories ``` 4. 然后,切换到git用户,并进入该目录: ``` sudo su - git cd /home/git/repositories ``` 5. 在该目录下,你可以创建一个新的Git仓库,比如: ``` git init --bare myrepo.git ``` 这将创建一个名为"myrepo.git"的裸仓库,裸仓库不包含工作目录,只包含版本历史记录。 6. 现在,你可以在其他计算机上克隆该仓库,并进行版本管理了。 请注意,这只是一个简单的示例,你可以根据你的需求进行更多的配置和管理。另外,你还可以使用SSH等方式来进行安全的访问和认证。 希望这些步骤对你有帮助!如果你有任何其他问题,请随时提问。 #### 引用[.reference_title] - *1* [linux环境下搭建Git服务器以及仓库管理-Ubuntu 22.04](https://blog.csdn.net/weixin_43028273/article/details/129484577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [ubuntu 22.04 server版 虚拟机环境搭建](https://blog.csdn.net/chen_xing_hai/article/details/130216066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值