Git服务器搭建

git中远程仓库与本地仓库没什么区别,只是提供了一个24小时不关机的服务器,方便不同的机器获取和开发,然而托管于在线GitHub网址是开源的,大多数公司不希望自己的代码被别人知道,所以那么选择SVN集中式版本开发,要么自己搭建Git服务器,这节主要学习搭建Git服务器的知识

Git服务器搭建

准备工作:

  1. 准备一台 Linux 的机器(Ubuntu或者 Debian)
  2. 安装 git:

    1
    sudo apt-get install git
  3. 创建git用户,用来运行 git 服务

    1
    sudo adduser git

收集所有需要访问用户的GitHub上面的公钥 就是用户自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authoriz ed_keys文件里,一行一个

  1. 初始化版本仓库,假定是/srv/sample.git,在/srv目录下输入
    1
    sudo git init --bare sample.git

Git 就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的 Git 仓库纯粹是为了共享,所有不让用户直接登记到服务器上去改服务区,并且服务器上的 Git 仓库通常都是 .git 结尾。然后,把owner 改为git:

1
sudo chown -R git:git sample.git

  1. 禁用 shell

    处于安全考虑,创建git的用户不允许登录shell,找到etc/passwd文件找到类似下面的一行:

    1
    2
    3
    git:x:1001:1001:,,,:/home/git:/bin/bash
    改为
    git:x:1001:1001:,,,:/home/usr/bin/git-shell

这样git用户可以正常通过ssh使用git,但无法登录shell,因为为git用户指定的shell登录就自动退出。

  1. 验证服务器
    git clone 克隆远程库
1
git clone git@server:/srv/sample.git

涉及到的知识:

  1. apk 是Debian及其派生发行版的软件包管理器
  2. Sudo 是一种程序,用于类Unix操作系统如BSD,Mac OS X,以及GNU/Linux以允许用户通过安全的方式使用特殊的权限运行程序(通常为系统的超级用户)。
(*^▽^*)