Github+Hexo 博客搭建+解决各种奇怪问题

请注意版本信息,避免兼容性冲突。

Update 2025.8.30 今天确实不想开任何卷,正好本地博客环境要重新搭,所以整理一下

  • 除说明外,这种无序引用的信息,均为在 Git Bash 命令窗口输入,注意空格。

出现问题可以尝试在 各种奇怪问题 中查找解决方案。


配置 Node.js

安装 Node.js

使用的版本为 v22.17.1

除了第二页点 Browse 设置安装路径,其他的都 next 就行。

更新 npm

最终使用版本为 11.5.2

为了防止后面出现各种奇怪问题,建议一开始直接更新好 npm。

打开命令窗口,

查看 npm 版本:

  • npm --version

更新 npm:

  • npm install -g npm

配置 Git

下载 Git

使用的版本为 2.50.0

第一页是声明直接 next,第二页点 Browse 设置安装路径。

第三页自己用就直接 next 就行。

第四页设置开始菜单名称,默认是 Git,也可以选择不添加。

第五页设置默认编辑器,没有就点下面的蓝色字去官网下载,我选 Use Visual Studio Code

第六页设置仓库主干默认名称,选第一行是默认 master
第二行Override the defult branch name for new 是自选,我选择用 main

第七页选第二行 Git form the command ans also form 3-rd-party

第八页选第一行 Use bundled OpenSSH

第九页选第一行 Use the OpenSSL libray

第十页选第一行 checkout Windows-style,commit Unix-style line endings

十一页选第一行 Use MinTTY (the defult terminal of MSYS2)

十二页选第一行 Fast-forward or merge

十三页选第一行 Git Credential Manager

十四页选第一行 Enable file system caching

图片版

第三页图片翻译来自 mukes

QQ20250830-113951

QQ20250830-110522
QQ20250830-110935
QQ20250830-111025
QQ20250830-111057
QQ20250830-113016
QQ20250830-111214
QQ20250830-111245
QQ20250830-111306
QQ20250830-111339

配置用户名和邮箱

安装完成之后开始连接 Github

先建一个文件夹,作为自己博客的根目录,我建了一个叫 Hexo

点进去文件夹,右键,选择 Open Git Bash Here。

屏幕截图 2025-08-30 113724

  • git config --global user.name "你的 GitHub 用户名"
  • git config --global user.email "你的 GitHub 邮箱"

创建 ssh 密钥

注意,使用 ssh 密钥仅是为了方便以后连接上传
如果你确实害怕安全性问题,或者希望每次输入账号密码,那么你可以不使用 ssh 密钥

  • ssh-keygen -t rsa -C "你的 GitHub 邮箱"

第一个出现的输入,是设置密匙的存放位置,默认为 C:\Users\用户名\
如果默认,那么直接回车。

第二个出现的输入,是设置密匙的密码。如果你不想要密码,那么直接回车。
注意,输入密码时可以不会弹出密码显示,所以请记得自己输入了什么密码

第三个出现的输入,是确认密码。

创建好后,打开密钥存放的位置,用记事本打开 id_rsa.pub,复制里面的内容。

打开 Github,选择 Settings -> SSH and GPG keys -> New SSH key

Title 输入密钥名称,下面的大框直接粘贴刚才复制的内容。

然后回到 Git Bash 的窗口测试连接,输入:

  • ssh -T git@github.com

如果出现这个:

QQ20250830-141918

说明你是第一次连接则需要添加本地主机,输入 yes,然后回车。此时你的密钥文件夹内会出现 known_hosts 文件。

如果设置了密码,那么你还需要根据提示输入你的密码。

最后出现这个说明你连接成功了:

QQ20250830-120058

配置 Hexo

本地安装 Hexo

在你的博客根目录下打开 Git Bash,输入:

  • npm install -g hexo-cli

根据网络环境的差异,安装时间不定,有时会比较长,耐心等待就好了。

如果安装成功了,可以查看 Hexo 版本:

  • hexo --version

QQ20250830-143309

初始化 Hexo

在自己的博客根目录文件夹里再建一个文件夹,用来放 Hexo 的程序,我建了一个叫 Blog

在新建的文件夹里打开 Git Bash 输入:

  • hexo init
  • npm install

耐心等待即可。完成后可以看到文件夹里多出了东西。

可以进行预览,先生成界面:

  • hexo g

进行本地预览:

  • hexo s

复制出现的那个网址,到浏览器里打开。

屏幕截图 2025-08-30 144219

在 Git Bash 界面使用 Ctrl + C 关闭本地预览。

上传 Hexo 程序到 Github

在 Github 上创建一个新的仓库,名字是 你的用户名.github.io
注意 .github.io 不能更改,前面的前缀最好用你的用户名,可以避免很多奇怪的问题。

记得选择公开仓库。此时打开 https://你的用户名.github.io 就可以看到默认界面了。

在你的 Hexo 程序文件夹里打开 Git Bash 输入:

  • npm install hexo-deployer-git --save

完成后打开文件 _config.yml

屏幕截图 2025-08-30 145127

找到文件末尾的 Deployment 部分,修改为下面的信息:

屏幕截图 2025-08-30 145908

这里注意你的 repo 后面的网址,在你仓库的 <>code 里可以看到。

根据自己选择的连接方式填写。因为我们刚刚创建了 ssh 密钥,所以我们用 ssh 连接。

然后到 Git Bash 中上传保存修改:

  • hexo d

完成后需要将库默认分支设置为 _config.yml 配置中的分支名称:

屏幕截图 2025-08-30 150724

然后调整源分支:

屏幕截图 2025-08-30 151305

完成后,你可以查看 Actions 等待页面创建任务完成。

屏幕截图 2025-08-30 151101

此时访问 用户名.github.io 就可以看到博客页面了。


博客迁移

原电脑的工作

其实你完全可以把博客的整个文件夹都传到一个私密仓库里,这是最方便快捷的。

  1. 创建一个文件夹当本地仓库,git init 把它变成仓库。
  2. 把需要的项目复制到文件夹里,git add . 添加进缓存区。
  3. git commit -m "注释内容" 提交到仓库。
  4. 创建好 ssh 密钥,通过 https 链接本地仓库和远端仓库。
  5. 如果远端仓库是空的,就git push -u origin master,不是空的就 git push origin master

详细点,

保留文件(夹):

  • _config.yml:站点配置
  • _config.landscape.yml:Landscape 主题的配置文件,Landscape 是 Hexo 的默认主题。
  • package.json:说明使用那些包
  • package-lock.json:文件是一个自动生成的文件,记录了整个项目的完整依赖树的具体版本信息。这确保了,不论何时、何地运行 npm install,都将安装完全相同版本的依赖。它帮助开发者避免由于依赖版本不同而导致的潜在问题。
  • scaffolds:文章的模板
  • source:自己写的博客文件
  • themes:主题
  • .gitignore:限定在提交的时候哪些文件可以忽略

删除文件(夹):

  • .git:无论是在站点根目录下,还是主题目录下的.git文件,都可以删掉。
  • node_modules:在用npm install会重新生成
  • public:hexo g会重新生成
  • .deploy_git:在使用hexo d时也会重新生成
  • db.json文件

新电脑的工作

安装 Node.js,安装 Git,设置 ssh 密钥。

创建好同名文件夹,并在其中安装好 Hexo 和 npm。

然后在根目录使用 https 连接克隆你的仓库,不要用 ssh 大概率会卡飞(至少我每次都会卡飞,使出浑身解数依然难以战胜)。

然后你可以把连接再改回 ssh(我不知道这有什么意义,但是我 clone 用 ssh 真的会起飞)。

先更改连接方式:

  • git remote set-url origin git@自己填

然后查看成功没:

  • git remote -v

然后尝试 pull 和 push 验证连接。


各种奇怪问题

1)Git 传输速度过慢

Git 自己的端口太不稳定了,能不能连上好多时候靠运气。

如果你有梯子,希望走梯子的流量,那么需要更改 GIt 的端口:

2)Hexo Init 失败:WARN git clone failed. Copying data instead

先 ping 一下 github 看看有没有超时,然后尝试更换更稳定的梯子和网络。

或者用这个:

  • npx hexp init 文件夹名称

大概率能解决问题。

3)npm install 报错:npm WARN deprecated

查看 npm 版本:

  • npm --version

更新 npm:

  • npm install -g npm

4)git pull 显示 Already up-to-date 但文件实际并没有更新

先查看你处于哪个分支,确保分支正确:

  • git branch

然后看看缓存区和工作区有没有东西:

  • git status

如果缓存区和工作区有东西,先放弃所有缓存:

  • git reset HEAD .

再放弃所有没加入缓存区的修改:

  • git checkout .

如果你确信远程仓库更新了,那可以尝试强制拉取覆盖;

  • git fetch --all
  • git reset --hard origin/main

最后尝试 pull。

5)ssh 连接报错:Error loading key: error in libcrypto

大概率就是纯格式问题。

把密钥放到 vscode 上,选右下角的 CRLF,在弹出来的窗口上选 LF,保存。

然后再试,大概率就可以了。


参考资料

有好多东西我忘了在哪找的了。

mukes - Git 详细安装教程

夜梦星尘

lyroom

posted @ 2025-08-30 10:19  Tmbcan  阅读(5)  评论(0)    收藏  举报