将 Hexo 提交到仓库

1219 字
6 分钟
将 Hexo 提交到仓库

将 Hexo 提交到仓库#

这是一个 Hexo 双仓库管理问题(一个是用于存放静态网页的 xxx.github.io,一个是用于存放源代码的 hexo-code)。

提交不上去是因为Git 配置冲突或者**.gitignore 设置不当**造成的。

创建 .gitignore 文件#

Hexo 部署和源码备份最常见的问题就是把不该传的文件传了,或者该传的文件被忽略了。

打开或在根目录下新建 .gitignore 文件,确保里面必须包含以下内容。

.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy_git/
  • public/ 和 .deploy_git/:这两个文件夹是 hexo d 生成的静态文件和部署用的 git 仓库,绝对不能提交到你的源码仓库 hexo-code 中,否则会造成严重的嵌套冲突。
  • node_modules/:这是依赖包,体积很大且不需要备份,只需备份 package.json 即可。

处理主题(Themes)文件夹的 Git 冲突#

这是最容易导致“无法提交”或“提交后文件夹是空的”的原因。

如果你下载的主题是通过 git clone 下载到 themes/ 目录下的,那么该主题文件夹里会有一个隐藏的 .git 文件夹。

**解决方法:**进入 themes/你的主题名/ 目录。删掉主题下的 .git 文件夹,不要删掉根目录的)。

这样做是为了让主仓库把主题文件当作普通文件来管理,而不是当作一个子模块(Submodule)。

生成 SSH 公钥连接到 GitHub#

检查并生成 SSH 密钥#

请在你的 Git Bash (或者终端) 中依次执行以下命令:

  1. 生成新密钥(请直接复制下方命令,将其中的 你的邮箱 换成你 GitHub 注册的邮箱):

    ssh-keygen -t ed25519 -C "email@example.com"
  2. 一路回车:

    • 系统会问你保存路径 -> 按回车(默认即可)。
    • 系统会问你是否覆盖 -> 如果提示 overwrite,输入 y 然后回车;如果没有提示,直接下一步。
    • 系统会问你 Passphrase(密码) -> 按回车(留空,不要设密码,否则以后每次部署都要输密码)。
    • 再次确认密码 -> 按回车。

    直到看见一个矩形的字符画(Randomart image),说明生成成功了。

获取公钥内容#

继续在终端输入以下命令,查看你的公钥内容:

cat ~/.ssh/id_ed25519.pub

终端会显示以 ssh-ed25519 开头的一长串字符。请把这一整段内容(包括开头的 ssh-ed25519 和结尾的邮箱)全部复制下来。

添加到 GitHub#

  1. 打开浏览器,登录你的 GitHub 账号。
  2. 点击右上角头像 -> Settings (设置)。
  3. 在左侧菜单栏找到 SSH and GPG keys。
  4. 点击绿色的 New SSH key 按钮。
  5. Title:随便填(例如:My Laptop)。
  6. Key:粘贴你在第二步复制的那一长串内容。
  7. 点击 Add SSH key。

验证#

回到你的 Git Bash 终端,输入以下命令测试连接:

Terminal window
ssh -T git@github.com
  • 如果它问 Are you sure...,再次输入 yes 并回车。

  • 成功的标志:你会看到这样一句话:

    Hi <你的用户名>! You've successfully authenticated, but GitHub does not provide shell access.

重新部署 Hexo#

请回到 Hexo 目录,再次尝试:

Terminal window
hexo d

就能顺利上传了。

清除凭证#

清除本地的 GitHub 身份凭证(最关键)#

你的电脑上有两把“钥匙”可以访问你的 GitHub 账户:SSH 私钥和Git 凭证管理器。

  1. 删除 SSH 私钥文件

​ 你之前为了部署 Hexo 而创建的 SSH 密钥对,其中私钥文件 (id_ed25519) 存放在你的用户主目录下。

  • 路径: C:\Users\你的用户名\.ssh\ 文件夹
  • 需要删除的文件:
    • id_ed25519 (这是你的私钥,务必删除!)
    • id_ed25519.pub (这是公钥,删除它也无妨,但私钥是关键)
    • known_hosts (记录了连接过的服务器指纹,删除可清理连接记录)
  1. 清除 Git 凭证缓存

​ 如果你使用 HTTPS 方式克隆仓库,或者在部署时输入过 GitHub 的用户名和密码/个人访问令牌 (PAT),系统可能会将其缓存在 Windows 的凭证管理器中。

  1. 打开 Windows 搜索栏,搜索 “凭证管理器” (Credential Manager)。
  2. 选择 “Windows 凭证” (Windows Credentials)。
  3. 在“普通凭证” (Generic Credentials) 部分,查找任何以 git:https://github.com 或 github.com 开头的条目。
  4. 找到后点击并选择 “移除” (Remove) 或 “删除” (Delete)。

从 GitHub 账户中删除公钥(远程操作)#

即使本地的私钥文件被删除,为了防止任何人通过其他方式恢复该文件,你还需要从 GitHub 账户中移除对应的公钥。这样,即使私钥泄露,它也无法用于访问你的 GitHub 账户。

  1. 打开浏览器,登录你的 GitHub 账户。
  2. 点击右上角头像,进入 Settings (设置)。
  3. 在左侧菜单栏找到 SSH and GPG keys。
  4. 找到你之前添加的、用于这台电脑的 SSH Key 确认删除

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

将 Hexo 提交到仓库
https://sukksa.github.io/posts/jiang-hexo-ti-jiao-dao-cang-ku/
作者
Sukksa
发布于
2025-11-26
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
从现有git仓库切换到另一个仓库
git此方法会 保留 原有的 origin (指向 url1 ),同时 新增 一个指向 url2 的远程仓库。这样本地仓库就可以同时与两个远程仓库进行通信。
2
从零开始的npm教程
gitnpm 是 Node.js 的标准包管理器,它允许你下载别人写好的代码(称为“包”或 package)直接在你的项目中使用,同时也帮助你管理这些代码之间的 依赖关系 (即你的项目运行所需要的外部代码)。 package.json 是 Node.js 项目中最重要的文件,如果没有它,npm 就不知道你…
3
如何移除 GitHub 中的 contributors
git如果你在某次 commit 时,忘记 git config 设置自己的 username 和 email 了,发现仓库主页 contributors,多了一个contributor,那么如何才能移除呢? 虽然官方没有移除contributor的办法,但是我们可以替换掉所有的username和emai…
4
react-hooks
reactReact 的核心是组件。v16.8 版本之前,组件的标准写法是类(class)。 任何一个组件,可以用类来写,也可以用钩子来写。下面是类的写法。 再来看钩子的写法,也就是函数。 官方推荐使用钩子(函数),而不是类。因为钩子更简洁,代码量少,用起来比较"轻",而类比较"重"。而且,钩子是函数,更符合…
5
关于 cesium 在 micro-app 下无法显示的问题
cesium基座:vite + vue3 子应用:vite + vue3 micro app v1.0.0 rc.29, cesium v1.135 子应用包含一个 cesium map,在基座打开子应用时,cesium 无法显示地图,但是 sence, sky box, model 都能正常显示,唯独地图不显…
随机文章随机推荐
Profile Image of the Author
Sukksa
记录前端学习与日常
公告
博客刚刚上线,内容还在慢慢补齐。欢迎随便逛逛~
分类
标签
最新动态
站点统计
文章
69
分类
16
标签
17
总字数
178,517
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录