搭建git服务器 | 张扎瓦的博客

搭建git服务器

本地搭建git服务器


前言

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

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


正文开始

安装git

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

1
[root@hadoop03 home]# yum info git

使用yum安装git

1
[root@hadoop03 ~]# yum install -y git

检查是否安装成功

1
2
[root@hadoop03 ~]# git version
git version 1.7.1

创建git运行用户

1
[root@hadoop03 ~]# adduser git

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

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

1
2
3
[root@hadoop03 git]# cd /home/git
[root@hadoop03 git]# ls -a
. .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla

禁止git用户shell登录

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

1
[root@hadoop03 ~]# vi /etc/passwd

找到类似下面的一句

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

将其改为

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

保存即可

创建ssh证书登录

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

1
2
3
4
5
6
7
[root@hadoop03 git]# mkdir .ssh
[root@hadoop03 git]# chmod 755 .ssh/
[root@hadoop03 git]# cd .ssh
[root@hadoop03 .ssh]# touch authorized_keys
[root@hadoop03 .ssh]# chmod 600 authorized_keys
[root@hadoop03 .ssh]# ls
authorized_keys

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

1
[root@hadoop03 git]# vim authorized_keys

粘贴公钥后,保存即可。

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

.ssh 和 authorized_keys 需要授予权限,否则git clone 项目时,会提示输入密码,此处必须注意!

初始化git仓库

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

1
2
3
[root@hadoop03 home]# mkdir gitrepo
[root@hadoop03 home]# ls
git gitrepo

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

1
2
3
[root@hadoop03 home]# cd gitrepo/
[root@hadoop03 gitrepo]# git init --bare test.git
Initialized empty Git repository in /home/gitrepo/test.git/

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

1
2
[root@hadoop03 gitrepo]# ls
test.git

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

1
[root@hadoop03 gitrepo]# chown -R git:git test.git/

至此,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.

接下来就尽情使用git吧。

如果我的文章对您有所帮助,不妨打赏一杯豆浆以资鼓励(○` 3′○)