在自己的服务器搭建Git
Yrh 苦逼后端

最近我把hexo搞到自己服务器上,用到了自建git,写一篇教程吧。

git环境搭建

  • git安装:官网下载

  • 生成ssh认证,执行如下命令

    1
    2
    3
    4
    git config --global user.name "yourname"
    git config --global user.email youremail@example.com
    ssh-keygen -t rsa -C "youremail@example.com"
    git config --global core.autocrlf false

最后获取到的ssh认证在C:\Users\yourname\.ssh

服务器配置

搭建远程Git私库

  • 安装 git

    1
    2
    3
    git --version // 如无,则安装
    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
    yum install -y git
  • 创建用户并配置其仓库

    1
    2
    3
    4
    5
    6
    7
    8
    9
    useradd git
    passwd git // 设置密码
    su git // 这步很重要,不切换用户后面会很麻烦
    cd /home/git/
    mkdir -p projects/blog // 项目存在的真实目录
    mkdir repos && cd repos
    git init --bare blog.git // 创建一个裸露的仓库
    cd blog.git/hooks
    vi post-receive // 创建 hook 钩子函数,输入了内容如下
    1
    2
    #!/bin/sh
    git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f
  • 添加完毕后修改权限

    1
    2
    3
    4
    chmod +x post-receive
    exit // 退出到 root 登录
    chown -R git:git /home/git/repos/blog.git // 添加权限

  • 测试git仓库是否可用,另找空白文件夹

    1
    git clone git@server_ip:/home/git/repos/blog.git
  • 如果能把空仓库拉下来,就说明 git 仓库搭建成功了

  • 建立ssh信任关系,在本地电脑

    1
    2
    ssh-copy-id -i C:/Users/yourname/.ssh/id_rsa.pub git@server_ip
    ssh git@server_ip // 测试能否登录

    :此时的 ssh 登录 git 用户不需要密码!否则就有错,请仔细重复步骤 3-5

 Comments