搭建git服务器

本篇博客CV自张扎瓦的博客,本人只在此处充当一下搬运工,大家可以点击神奇传送门前往原文博客的说。

前言

​ git可以说是目前使用最广泛的版本控制系统了,GitHub是基于git的免费的代码托管网站,有人说,既然都是免费的了,直接用不就好了吗,干嘛还要费劲自己搭建一个服务。我想说的是,GitHub虽然是免费的,但是有一点很重要,那就是私有性。公司内部的项目通常都是要保密的。虽然GitHub可以选择仓库私有,但那是要收费的。综上所述,还是在自己私有的服务器上搭建git服务比较合适。

  本次演示使用VMware虚拟机,系统镜像CentOS 6.9 x64,root账户进行安装操作。

正文开始

安装git

使用yum查询当前是否有可安装的git版本

1
# yum info git

使用yum安装git

1
# yum install -y git

检查是否安装成功

1
2
# git version
git version 1.7.1

创建git运行用户

1
# adduser git

在当前Linux系统中创建了一个新的用户git

执行完以上命令后,会在/home生成一个git文件夹。我们cd到home目录查看一下

1
2
3
# cd /home/git
# ls -a
. .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla

禁止git用户shell登陆

创建git用户是为了访问服务器的git仓库,为了安全起见,将git用户禁止shell登录。

1
# vi /etc/passwd

找到类似下面的一句

1
git:x:501:501::/home/git:/bin/bash

将其改为

1
git:x:501:501::/home/git:/usr/bin/git-shell

保存即可。

创建ssh证书登录

/home/git文件夹下,创建一个新文件夹.ssh,并新建一个文件authorized_keys,这个authorized_keys文件用来存放我们的git公钥。

1
2
3
4
5
# mkdir .ssh
# cd .ssh
# touch authorized_keys
# ls
authorized_keys

收集团队中其他人的git公钥,复制后添加到authorized_keys文件中。git公钥一般存放在C:\Users\xxx\.ssh\id_rsa.pub中。如果你的电脑上没有,需要安装git客户端,并生成git公钥。关于此部分,我的另一篇博客使用GitHub-Pages-Hexo-搭建博客中有所介绍,此处不再细讲。

1
# vim authorized_keys

注意:粘贴公钥时,注意空格。公钥一行一个。

初始化git仓库

创建一个仓库目录,我放在/home下面

1
2
3
# mkdir gitrepo
# ls
git gitrepo

初始化git仓库,假设项目名叫test

1
2
3
# cd gitrepo/
# git init --bare test.git
Initialized empty Git repository in /home/gitrepo/test.git/

执行完命令后,会在gitrepo下生成test.git目录

1
2
# ls
test.git

修改仓库的归属权限,否则无法访问git仓库

1
# chown -R git:git test.git/

克隆远程仓库

1
2
3
4
λ git clone git@192.168.213.130:/home/gitrepo/test.git
Cloning into 'test'...
key_load_public: invalid format
warning: You appear to have cloned an empty repository