前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云主机搭建Git服务器

云主机搭建Git服务器

原创
作者头像
Jeffery
修改2019-01-27 23:58:34
19.8K0
修改2019-01-27 23:58:34
举报

前言

版本控制是一个项目不可或缺的一部分,可以帮助开发者追踪文件的变更、分支管理、版本回退、版本发布等。所以建议当开始一个项目或者有想法进行开发时,都尽量考虑用上版本控制。常用的版本控制系统有svnGit,其中Git由于其开源、分布式、快速高效等特点已俨然成版本管理系统的首选。

Git

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理,是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。由于其分布式的特点,我们完全可以只在本地保存整个项目仓库,但考虑多人协作的需求,一般情况是建立一个远程仓库,项目的所有开发者都围绕这个远程仓库进行同步和提交。虽然Github已经免费提供了这样的远程仓库给用户,但这种仓库一般是全网公开,即所有人都可以看到里面的提交。如果我们自己有云主机(最好是Linux系统)的话,要搭建一个Git服务器创建远程仓库并不难,现在让我们开始吧。

远程仓库

搭建Git服务器不需要什么复杂的工具,因为git这个工具已经包括所有的功能。

安装git

一般Linux的发行版已经内置git,如果没有的话安装一下

sudo apt-get install git

添加用户

sudo adduser git

该用户是用来运行我们git服务器的,在云主机上与我们的普通用户区分。当我们的本地git客户端与远程仓库交互时,云主机上用来运行git程序的用户就是我们刚添加的git了。对该用户设置一下密码:

sudo passwd git

禁用登陆git

由于用户git主要作为仓库使用,一般人员不可以也不应该登陆和进入git,所以使用工具git-shell禁止用户git登陆shell。

先在/etc/shells中加入/usr/bin/git-shell作为可用shell;

sudo vim /etc/shells

然后改变用户git的默认shell。

sudo chsh git -s git-shell

创建仓库

由于用户git已经禁止登陆了,我们直接使用root权限在/home/git目录上创建所有远程仓库的目录srv/

sudo mkdir /home/git/srv

此时可以在srv/上创建一个空的远程仓库,命令为:

sudo cd /home/git/srv sudo git init --bare elephant.git

其中--bare参数表示裸仓库,一般会将远程仓库初始化为裸仓库。

现在最好设置好仓库的权限,由用户git来管理,其他用户无管理权限。

sudo chown -R git /home/git/srv sudo chmod -R 770 /home/git/srv

客户端登陆

现在客户端需要与远程仓库同步,可以用ssh进行登陆,而且git也支持ssh连接。

客户端需要创建ssh-key,使用ssh-keygen创建公钥私钥

ssh-keygen -t rsa -C "xxx@email.com"

Windows一般把生成的公钥私钥放在

C:\Users\xxxx.ssh\

把.ssh\id_rsa.pub(公钥)的内容拷贝出来,放置到云主机的git用户的/home/git/.ssh/authorized_keys()中,表示已认证过的公钥。

此时,在本地git客户端则可以使用以下命令拉取到远程仓库了

git clone git@server:srv/elephant.git了

上面的仓库地址中,git表示云主机的用户git,server表示主机地址,即云主机的ip,加上后面的内容则表示云主机上的/home/git/srv/elephant.git这个裸仓库。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Git
  • 远程仓库
    • 安装git
      • 添加用户
        • 禁用登陆git
          • 创建仓库
            • 客户端登陆
            相关产品与服务
            云服务器
            云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
            http://www.vxiaotou.com