欢迎光临
我们一直在努力

搭建属于自己的Git服务器

一般情况下,我们的远程仓库使用的是Github或者码云,其实我们也可以在自己的服务器上搭建一台属于自己的私有Git远程仓库。

接下来我们将以 Centos 为例搭建 Git 服务器。

1.安装Git服务

$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
$ yum install git

  创建一个git用户组和用户,用来运行git服务:(前面安装git的时候,centos会默认创建一个git用户,所以这一步可忽略)

$ groupadd git
$ useradd git -g git

2. 创建证书登录

收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

如果没有该文件创建它:

$ cd /home/git/
$ mkdir .ssh
$ chmod 755 .ssh
$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keys

3. 初始化Git仓库

首先我们选定一个目录作为Git仓库,假定是/home/test,在/home/test目录下输入命令:

$ cd /home
$ mkdir test
$ chown git:git test/
$ cd test

$ git init --bare test.git
Initialized empty Git repository in /home/test/test.git/

以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:

$ chown -R git:git runoob.git

4. 本地克隆仓库

$ git clone git@192.0.0.1:/home/test/test.git
Cloning into 'test'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

注:192.0.0.1 要改为你自己的服务器ip地址。第一次push可能会有一些提示,因为裸版本库还什么都没有,你可能需要 git push origin master写全命令,之后就没必要了,直接 git push 就可以了。

至此,我们的 Git 服务器安装就完成。

5. 实现自动同步到站点目录

有的朋友可能会有这样一种需求:代码push到远程私有仓库里面后,需要自动同步到项目目录。这时候就需要用到 GIt 的钩子功能了。接下来我们就来看看怎么实现:

进入裸仓库:/home/test/test.git 然后进入 hooks 目录,创建 post-receive 文件,在里面输入命令,见代码:

cd /home/test/test.git
cd hooks
//这里我们创建post-receive文件
vim post-receive
//在该文件里输入以下内容
#!/bin/bash
git --work-tree=/home/www checkout -f
//保存退出后,将该文件用户及用户组都设置成git
chown git:git post-receive
//由于该文件其实就是一个shell文件,我们还应该为其设置可执行权限
chmod +x post-receive

注意:同步的目录需要给 git 用户设置写入权限。

接下来我们就可以在本地提交一下代码试试,看www目录有没有同步仓库里的代码。如果没有成功,要检查一下git 用户有没有往项目目录写入权限。

赞(0)
版权归原作者所有,如有侵权请告知。达维营-前端网 » 搭建属于自己的Git服务器

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址