TIC2019GitTrain

TIC·2019年Git培训资料

View project on GitHub

第五章 Git服务器

深入学习的阅读资料:服务器上的 Git - 架设服务器

我无意于重复已经存在的教程信息,只准备简单列出本次培训中各位所需要知道的精简信息。 如果你有兴趣,请移步阅读资料中的超链接,更加系统性地进行学习。

  • 要想流畅阅读本章,你需要有一定的Linux操作能力、一定的网络通讯基础。

  • 本章你将了解到如何假设自己的Git服务器,实现完全属于自己的私人中央服务器。

服务器选择

事实上,作为练习,你完全可以通过127.0.0.1将本机作为一个服务器,也无所谓是Windows还是Linux系统。

但这年头还拿Windows Server当服务器的不是国企就是学校的老系统,邪道得不行,基本都是上世纪的DOS程序员还这么搞了。

我个人建议上阿里云租一台服务器,学生认证只要10¥一个月,简直不要太和善。 至于是Ubuntu还是CentOS其实没差,都行,就是之后要记得在控制台开放相应的端口(SSH默认端口为22)。

在服务器上设置Git中央仓库

安装Git

由于阿里云某些环境镜像自带了Git,所以你可以先看看服务器上是否已经安装好Git了: git --version

如果没有安装Git,你可以通过以下命令安装:

  • Ubuntusudo apt-get install git
  • CentOS: sudo yum install -y git

如果提示找不到软件源,可以尝试apt-get update更新仓库源。

创建管理用户

不少教程都会告诉你新建一个用户——git:(Shell)adduser git,然后按提示设置完密码;但其实你也可以不将这个用户取名为git,也可以叫mygit等。

以下均以git作为代称。

创建远程仓库

一般情况下,我们使用刚刚新建的这个用户的主目录作为仓库中央根目录:git init --bare ~/test.git

这样,就在用户的主目录下新建了一个叫做test.git的仓库。

如果你当前以root的身份创建了这个仓库,你需要调整一下这个仓库的所有者:chown -R git:git ~/test.git,否则与远程仓库链接时可能会报出以下错误——insufficient permission for adding an object to repository database ./object

打开RSA认证

在某些情况下,你可能还需要打开RSA认证:vim /etc/ssh/sshd_config,编辑以下这几行成下面所示的值:

RSAAuthentication yes     
PubkeyAuthentication yes     
AuthorizedKeysFile  .ssh/authorized_keys

你可能需要安装Vimapt-get install vim(Ubuntu)、yun install vim(CentOS)

Shell安全策略

我们虽然新建了个用户git(假设用户ID为1001)专门用于管理仓库,但我们并不希望他作为一个正常用户。 我们需要把它的Shell登录策略关闭:

  1. vim /etc/passwd
  2. git:x:1001:1001:,,,:/home/git:/bin/bash 的末尾改为git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

建立远程仓库联系

现在,回到你的本地机器上,使用之前学过的命令建立链接:git remote add <name> <url>

你可以通过下面的SSH-url建立远程联系:

  • git remote add <mygit> <url>命令用于建立远程仓库联系。
  • url: <Git管理账户>@<服务器IP>:<端口><仓库地址>,例如git@180.180.180.180:1234/home/test.git。(如果是默认端口,端口可缺省不填)。
  • 连接时可能会要求你输入git账户的密码。如果不希望每次都输入密码,请在服务器上添加你的SSH公钥vim ~/.ssh/authorized_keys

最后,你可以尝试git pull一下服务器上的仓库或是git push文件到你的私人仓库了。


返回目录