在CentOS系统上搭建Git仓库

· 0

前言

前段时间决定重启博客,说句真心的,真的鼓足了勇气。毕竟放下了十年,以前的半吊子又重新回到新手村开启一步一步的探索之旅。既然重头来过,就接触一些以前没有接触过吧,静态博客。在网上仔细挑选了一番,基本定位在这三个工具:

Jekyll

Jekyll做为GitHub Pages的构建工具(Ruby语言),使它成为最流行的静态网站生成工具,但缺点是这三个工具中生成页面的速度最慢的。

Hugo

Hugo是另一个流行的静态网站生成工具,它是使用go语言编写,并且使用Markdown语法,拥有最快的页面生成速度,缺点是主题不多(其实是没我喜欢的,哈哈哈)。

Hexo

Hexo是用Node.js编写的博客框架,支持所有的GitHub Markdown特性,页面的生成速度介于前面两者中间。国人用的比较多,所以出问题会比较容易找到解决的方法! 基于自己能力、喜好等因素,最终决定选择Hexo。但在自己一步一步跟着网上的教程去搭建的过程中,还是踩了不少的坑,特别是在云服务器上创建git仓库过程中。其原因嘛,一是自己的理解能力有限(主要原因),二是网上的教程有的说不全,有的又太过于笼统。所以今天我就把自己的踩坑经历分享一下,当作记录也好,免得以后换云服务商的时候又忘记怎么搭建。

搭建过程

1.安装git

1yum install git -y

2.创建一个git用户

1adduser git

设置git这个用户的密码

1passwd git

3.创建公钥保存文件

跳转到git目录

上图可以看到我是先CD到了git目录下再进行其他的操作,要注意的是我是在根目录上输入CD命令的。

1cd home/git/

切换到git用户

1su git

创建.ssh目录并给予700的权限

1mkdir .ssh && chmod 700 .ssh

创建公钥保存文件并给予600的权限

1touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

切换回root用户

1su root

输入密码后回车就行。 这里要说一下的是,如果你不想以后每次把通过hexo生成的静态文件推到你git仓库时都要输入密码的话,就要修改authorized_keys这个文件,修改方法如下: 以windows为例,安装git,官网地址:https://git-scm.com/downloads 根据你的系统选择64位还是32位,我想现在的都是用64位的系统吧。哈哈哈,下载好后打开安装,一直点“下一步”就好,如果你有特殊僻好的设置,请自行参考度娘去设置。安装完成好win+r运行CMD

1.配置用户名和邮箱:

1git config --global user.name "你的用户名"
2git config --global user.email "你的邮箱地址"

2.然后生成公钥和私钥

1ssh-keygen -t rsa -C "你的邮箱地址"

这时会叫你填写保存公钥和私钥文件的路径,记一下默认的路径,我的是这样子的c/user/skybb/.ssh/id_rsa。其中skybb是你电脑的用户名,我们选择默认的路径,按回车

3.根据上面提示的路径打开文件夹

id_rsa.pub为公钥,用notepad+打开的(记事本也行,网上说不好,反正我试过几次用记事本打开也没问题),里面的内容就是我们要复制到authorized_keys这个文件里的。

4.回到云服务器的操作

输入

1pwd

确认我们是否在/home/git这个目录里

1cd .ssh
2vim authorized_keys

按i进行编辑

把id_rsa.pub里面的内容复制到里面

按Esc,输入:wq退出

这样我们就将电脑上的公钥保存到你云服务器上了,以后将静态文件推到仓库时就不用每次都输入密码了。当然如果你觉得每次输入密码也无所谓的话,其实不修改authorized_keys也是没有问题的,这个我验证过。

创建git仓库目录

上面有提到我们当前是在git的目录里吧。我们先退回上一层目录home

1cd ..

然后在home目录里建一个名为blog.git的仓库

1git init --bare blog.git

配置git hooks

1vim blog.git/hooks/post-receive

按i编辑,复制下面内容

1#!/bin/sh
2git --work-tree=/home/www/hexo --git-dir=/home/blog.git checkout -f

按Esc,输入:wq保存退出

这里要说的是,/home/www/hexo是我们存放hexo生成的静态文件目录,如果你想更改到其他路径,git hooks上复制的代码也要跟着更改。

接下来是设置权限

1chmod +x blog.git/hooks/post-receive

更改blog.git这个仓库的拥有人为git用户(怎么感觉这么绕,哈哈哈)

1chown -R git:git blog.git

创建上面已经关连的静态目录

1mkdir www
2cd www
3mkdir hexo

设置hexo目录的权限与更改拥有人

1chmod -R 755 hexo
2chown -R git:git hexo

安全设置

其实按上面设置完,你的仓库已经可以使用了,但为了安全考虑,我们应该要改一下git用户的相关登陆权限。

1cd ../..

退回到服务器的根目录

1vim etc/passwd

按i进行编辑

1找到git:x:1000:1000::/home/git:/bin/bash   # 这个1000有可能会不一样的,应该是ID数,我在另一台服务是1001
2改为git:x:1000:1000::/home/git:/usr/bin/git-shell

按Esc,输入:wq保存退出

这样,git用户就只能连接git仓库进行推送与拉取的操作,不能登陆服务器并使用命令。

搭建完成

到此,服务器的git仓库已经搭建完成了,仓库地址为git@服务器ip:/home/blog.git

> cd ..

2020-2023 © LaoMai 179736