基于GitHub+hexo部署静态Blog
一、前言
本文详细介绍了如何使用Hexo框架搭建一个个人博客,并将其部署到GitHub Pages上。主要内容包括:
- 环境准备:安装Node.js和Git
- 配置Git和GitHub:设置SSH密钥,创建GitHub仓库
- 初始化Hexo项目:安装Hexo,创建新博客
- 部署到GitHub Pages:配置部署设置,推送静态文件
- 基本使用方法:创建新文章,本地预览,发布更新
这个教程适合那些想要快速搭建个人博客,但又不想花费太多成本的人。通过使用Hexo和GitHub的免费服务,您可以轻松创建一个高效、简洁的博客网站。
二、事前准备
三、软件安装
安装 Node
打开Node.js官网,下载和自己系统相配的Node的安装程序,否则会出现安装问题
下载后安装,安装的目录可以使用默认目录
C:/Program Files/nodejs/安装完成后,检查是否安装成功。在键盘按下win + R键,输入CMD,然后回车,打开CMD窗口,执行
node -v命令,看到版本信息,则说明安装成功1
2C:\Users\Administrator>node -v
v20.18.0修改npm源。npm下载各种模块,默认是从国处服务器下载,速度较慢,建议配置成华为云镜像源。打开CMD窗口,运行如下命令:
1
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
安装 Git
进入Git官网下载适合你当前系统的版本
下载后傻瓜式安装Git即可,安装的目录最好使用默认目录
C:/Program Files/Git按win + R键,输入CMD,然后回车,打开CMD窗口,执行
git -v命令,看到版本信息,则说明安装成功1
2C:\Users\Administrator>git -v
git version 2.42.0.windows.2Git组件:
Git CMD是windows 命令行的指令风格Git Bash是linux系统的指令风格(建议使用)**
Git GUI**是图形化界面(新手学习不建议使用)
四、配置 Git 密钥并连接至 Github
常用 Git 命令:
1
2
3git config -l //查看所有配置
git config --system --list //查看系统配置
git config --global --list //查看用户(全局)配置配置用户名和邮箱:
1
2git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"配置公钥连接 Github:
生成ssh公钥
1
ssh-keygen -t rsa -C "你的邮箱"
id_rsa私钥id_rsa.pub公钥
用记事本打开上述图片中的公钥
id_rsa.pub,复制里面的内容,然后开始在github中配置ssh密钥。将 SSH KEY 配置到 GitHub
- 进入github,点击右上角头像 选择
settings,进入设置页后选择SSH and GPG keys,名字随便起,公钥填到Key那一栏。
- 进入github,点击右上角头像 选择
测试连接,输入以下命令
1
ssh -T [email protected]
第一次连接会提示
Are you sure you want to continue connecting (yes/no/[fingerprint])?,输入yes即可
出现连接到账户的信息,说明已经大功告成,至此完成了环境准备工作。创建GitHub.io仓库
注册登录GitHub
点击右上角的
+按钮,选择New repository,创建一个<用户名>.github.io的仓库。仓库名字的格式必须为:
<用户名>.github.io(注意:前缀必须为用户名,此为预览博客需要,后期可修改仓库名)可见性必须选择
Public方便第一次部署检查问题,点击 Creat repository 进行创建即可
五、初始化 Hexo 博客
创建一个文件夹来保存博客源码(我这里选的路径为
D:/Hexo-Blog),在文件夹内右键鼠标,选择Open Git Bash here在
Git BASH输入如下命令安装 Hexo1
npm install -g hexo-cli && hexo -v
安装完后输入
hexo -v验证是否安装成功。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27C:\Users\Administrator>hexo -v
hexo-cli: 4.3.2
os: win32 10.0.22631 undefined
node: 20.18.0
acorn: 8.12.1
ada: 2.9.0
ares: 1.33.1
base64: 0.5.2
brotli: 1.1.0
cjs_module_lexer: 1.4.1
cldr: 45.0
icu: 75.1
llhttp: 8.1.2
modules: 115
napi: 9
nghttp2: 1.61.0
nghttp3: 0.7.0
ngtcp2: 1.1.0
openssl: 3.0.13+quic
simdutf: 5.5.0
tz: 2024a
undici: 6.19.8
unicode: 15.1
uv: 1.46.0
uvwasi: 0.0.21
v8: 11.3.244.8-node.23
zlib: 1.3.0.1-motley-71660e1初始化 Hexo 项目安装相关依赖。
1
2
3hexo init blog-demo //创建项目
cd blog-demo //切换路径
npm i //安装依赖初始化项目后,
blog-demo有如下结构:1
2
3
4
5
6
7
8
9blog-demo
├── node_modules //依赖包
├── scaffolds //生成文章的一些模板
├── source //用来存放你的文章
├── themes //主题
├──.npmignore //发布时忽略的文件(可忽略)
├── _config.landscape.yml //主题的配置文件
├── config.yml //博客的配置文件
└── package.json //项目名称、描述、版本、运行和开发等信息命令行输入
hexo cl && hexo s启动项目打开浏览器,输入地址:
http://localhost:4000/,看到欢迎界面,说明你的博客已经构建成功了。
六、将静态博客挂载到 GitHub Pages
安装 hexo-deployer-git
1
npm install hexo-deployer-git --save
修改
_config.yml文件
在blog-demo目录下的_config.yml,就是整个Hexo框架的配置文件,详细可参考官方的配置描述
修改最后一行的配置,将repository修改为你自己的github项目地址即可,还有分支要改为main代表主分支(注意缩进)。1
2
3
4deploy:
type: git
repository: [email protected]:kingmoon3/kingmoon3.github.io.git
branch: main修改好配置后,运行如下命令,将代码部署到 GitHub(Hexo三连)。
1
2// Git BASH终端
hexo clean && hexo g && hexo d**
hexo clean**:删除之前生成的文件,可以用hexo cl缩写。**
hexo generate**:生成静态文章,可以用hexo g缩写**
hexo deploy**:部署文章,可以用hexo d缩写
注意:deploy时可能要你输入 username 和 password。
如果出现 **INFO Deploy done: git**,则说明部署成功了。
稍等两分钟,打开浏览器访问:https://[你的github用户名].github.io ,这时候我们就可以看到博客内容了。
附:GitHub网站部署常用命令:
| 命令 | 作用 | 示例 |
|---|---|---|
git init |
在当前目录初始化一个Git仓库 | git init my_project(在my_project目录下初始化仓库) |
git clone [url] |
克隆远程仓库到本地 | git clone https://github.com/user/repo.git(克隆指定仓库) |
git status |
查看仓库中文件的状态 | 在仓库目录下执行git status查看文件修改、暂存等状态 |
git add [file/dir] |
将文件或目录添加到暂存区 | git add file.txt(添加单个文件),git add.(添加当前目录下所有文件) |
git commit -m "[message]" |
提交暂存区的内容,并添加提交消息 | git commit -m "Update README"(提交并添加消息) |
git branch |
查看本地分支列表 | 执行git branch查看当前仓库的分支情况 |
git branch [branch - name] |
创建一个新的本地分支 | git branch new_branch(创建名为new_branch的分支) |
git checkout [branch - name] |
切换到指定分支 | git checkout master(切换到master分支) |
git merge [branch - name] |
合并指定分支到当前分支 | 假设在master分支,git merge feature_branch(合并feature_branch) |
git log |
查看提交历史 | 执行git log查看之前的提交记录,包括作者、日期、消息等 |
git remote add [name] [url] |
添加远程仓库 | git remote add origin https://github.com/user/repo.git(添加名为origin的远程仓库) |
git push [remote - name] [branch - name] |
将本地分支推送到远程仓库 | git push origin master(推送master分支到origin) |
git pull [remote - name] [branch - name] |
从远程仓库拉取并合并更新 | git pull origin master(拉取master分支更新) |
git diff [file] |
查看文件的修改差异 | git diff file.txt(查看file.txt的修改差异) |
git stash |
暂存当前工作区的修改 | 在未完成的修改状态下,执行git stash暂存修改 |
git stash pop |
恢复暂存的修改 | 执行git stash pop恢复之前暂存的修改 |
git tag [tag - name] |
给当前提交打标签 | git tag v1.0(给当前提交打v1.0标签) |
git show [tag - name] |
查看标签相关的提交信息 | git show v1.0查看v1.0标签对应的提交内容 |
| 命令 | 作用 | 示例 |
|---|---|---|
hexo init [folder] |
初始化一个 Hexo 项目,可选参数[folder]指定项目文件夹名称。 |
hexo init my-blog(在当前目录下创建名为my-blog的 Hexo 项目) |
hexo new [layout] <title> |
创建一篇新文章,[layout]是布局模板,<title>是文章标题。 |
hexo new post "My New Post"(创建一篇新的post布局的文章) |
hexo generate或hexo g |
生成静态文件。 | 执行该命令会根据主题模板生成 HTML、CSS、JS 等静态文件到public目录。 |
hexo server或hexo s |
启动本地服务器进行预览。 | 在本地浏览器中输入http://localhost:4000可查看生成的博客效果。 |
hexo clean |
清除之前生成的静态文件和缓存。 | 当遇到生成问题或切换主题后可先执行此命令。 |
hexo deploy或hexo d |
部署博客到指定平台。 | 配置好后执行该命令可将静态文件推送到远程仓库等部署目标。 |
hexo list <type> |
列出特定类型的内容,如post(文章)、page(页面)等。 |
hexo list post列出所有文章信息。 |