用云主机搭建Git搬瓦工服务器教程

  在做项目的时候,需要版本控制,其中Git是版本管理系统的首选。用云主机搭建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:Usersxxxx.ssh

  把.sshid_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这个裸仓库。