Hexo和Git相关问题记录合集
前言:
新来的友友们建议先看一下《教程&笔记常量申明》。
Hexo 篇
Hexo 上传博客到 GitHub
在
<BlogRoot>
的地址框中输入cmd
,然后按回车调用命令行输入
hexo clean
,来清理缓存文件以及删除之前生成的静态文件输入
hexo g
,来构建新的静态文件输入
hexo s
,来启动本地预览输入
hexo d
或hexo deploy
,来将你的项目会自动部署到远端输入 GitHub 账号密码即可部署成功(初次上传会需要)
hexo deploy 部署不成功
情况 1:有可能和 npm 版本有关,升级 npm
- 查看当前版本:npm -v
- 更新到最新版本:npm install -g npm
情况 2:有可能和网速有关,重新上传几次
情况 3:有可能代码有错误,得检查
情况 4:有可能没有执行 hexo clean 命令
卸载 Hexo 插件
方法一:
查看插件:npm list
卸载插件:npm uninstall <对应插件名>
方法二:
在代码编辑器里搜索插件名,删除对应代码即可
方法二可作为方法一失败后的备选方案
参考教程:https://www.dazhuanlan.com/2019/10/12/5da110cdd9a7b/
🔥 嵌入 Bilibili 视频到博客文章中
在 Bilibili 视频页中将鼠标移到
转发按钮
下方将会弹出一个框,看到
嵌入代码
这,复制src="
到&page
之间的代码(其实直接复制整条代码就行,但其视频显示样式不是最佳状态)将代码粘贴到下方代码模板的
<Copy>
这,再将该段代码粘贴到博客文章中,再 Hexo 三连即可看到效果。1
2
3
4
5
6
7
8
9
10<div style="position: relative; padding: 30% 45%;">
<iframe
style="position: absolute; width: 100%; height: 100%; left: 0; top: 0;"
src="<Copy>&page=1&as_wide=1&high_quality=1&danmaku=1"
frameborder="no"
scrolling="no"
allowfullscreen="true"
>
</iframe>
</div>效果如下:
说明:有些参数可参考以下教程中的介绍来更改。
参考教程:https://www.cnblogs.com/wkfvawl/p/12268980.html (教程部分地方可能过时,仅参考)
🔥 点击文章卡片跳转其他站点(Butterfly 主题)
无意中看源码发现的。因为我还搭有其他网站,所以有这个跳转需求。
直接在头部 yaml 中加上:link: <URL>
,即可点击文章卡片跳转到相应链接。
升级 Hexo 博客主题
方法一:git pull
拉取最新版本主题(所有魔改全部清除)
方法二:按照发布版本来对比更改源码(博主目前采用方法)
将 fork 的项目和上游保持同步更改
方法一:
- 若本地没有部署自己的仓库,则
git clone <RepoGit>
git remote add upstream <OriginRepoGit>
,拉取上游仓库的更改- 再来解决文件冲突,解决好了可以 Git 三连
方法二:重新 fork
参考教程:https://www.jianshu.com/p/840ea273f25a
🔥 归档页 Archive 文章显示数设置
为什么要特别去设置归档页文章显示数?
我一直以来觉得归档页显示的文章数得多于首页显示的才算有意义,否则归档页只是缩小版的博客首页,反而在文章检索上还不清晰直观,那么归档页的意义又何在呢?但如果你想快速知晓一名博主某一周期的文章发布情况或者通过时间维度来查找文章,这时查看归档页就是明智的选择,它可以清晰看到发布时间和文章名两个维度。
还有一点好处,拿 Butterfly 主题博客来说,该主题有标志性的侧边栏,如果归档页只显示默认 10 篇文章的话,那么多出来一长条的侧边栏会显得非常丑和多余。
综上两点,设置归档页文章显示数再多于首页,非常有必要!
- 首先打开
<BlogRoot>\_config.yml
文件,找到archive_generator
该字段,设置per_page
即可
1 | archive_generator: |
如果没有看到该字段,则将这些代码参数加上去
如果加了后没有效果,说明你缺少hexo-generator-archive插件,在博客下打开命令行,输入
npm install hexo-generator-archive --save
下载插件即可
Git 篇
Branch 代码分支
命令 | 作用 |
---|---|
git branch | 显示所有本地分支,同时也能查看当前所在分支 |
git branch <branch> | 创建名为 <branch> 的分支 |
git checkout <branch> | 切换到名为 <branch> 的分支 |
git checkout -b <branch> | 创建并切换到名为 <branch> 的分支 |
git merge <branch> | 合并名为 <branch> 的分支到当前分支 |
git branch -d <branch> | 删除名为 <branch> 的分支 |
git push -u origin <branch> | 将名为 <branch> 的分支推送到远程仓库并设置该分支为默认推送分支 |
git fetch origin | 获取远程仓库的所有分支和更新 |
git pull origin <branch> | 获取远程仓库的更新并将名为 <branch> 的分支合并到当前分支 |
报错合集
没有访问仓库的权限或仓库不存在
报错代码:Please make sure you have the correct access rights and the repository exists
原因:公钥出问题了,需要删除.ssh 文件夹,然后重设置用户名和邮箱再重新生成 ssh 公钥即可解决
解决:
- 删除
C:/Users/Administrator/.ssh
文件夹 - 打开 cmd 命令行
- 设置用户名:
git config --global user.name <UserName>
- 设置用户名邮箱:
git config --global user.email <Email>
- 查看设置:
git config --list
- 然后继续输入命令,修改后面的邮箱即可:
ssh-keygen -t rsa -C <Email>
- 打开 GitHub 网站,点击右上角头像
- 点击 Settings
- 将.ssh 文件夹里的
id_rsa.pub
用记事本打开,复制所有代码 - 粘贴到
Settings
👉SSH and GPG keys
👉Key
框中 Title
填写rsa
- 点击绿键
Add SSH key
- 重新 git 即可
参考教程:https://blog.csdn.net/qq_43705131/article/details/107965888
git push 失败
报错代码:
1 | ! [rejected] XXX -> XXX (fetch first) |
原因:你的仓库有其它分支的更改,比如你的团队项目,别人更改过,而你本地没有导入,或者你通过 GitHub 官网修改过代码。
解决:所以这时需要git pull --rebase origin <BranchName>
命令来下拉远程仓库最新代码,最后再 push 本地代码。
解释:该命令的意思是把远程库中的更新合并(pull=fetch+merge
)到本地库中,-rebase
的作用是取消掉本地库中刚刚的 commit,并把他们接到更新后的版本库之中。
参考教程:解决办法:git 错误 error: failed to push some refs to 'https://github.com/...
GitHub 网站访问慢或访问不了
删除 GitHub 仓库
- 点击右上角头像
- 点击
your repositories
- 点击要删除的仓库,进入详情页
- 找到
setting
设置,下拉至最后可以看到删除选项 - 输入代码库名称确认删除,最后输入密码认证即可
删除 GitHub 单个文件
可以通过命令(自行百度),也可以通过在 GitHub 仓库里直接删除(点击要删文件,点击右上角垃圾箱图案)
🔥 上传项目到 GitHub 仓库
确保你本地下载了 Git 软件(Mac 端不用下载,用终端即可)
在 GitHub 里新建一个项目
复制 HTTPS 地址备用
WIN端 - 右键本地仓库文件夹,再点击
git bash here
MAC端 - 打开本地仓库文件夹下的终端
依次输入:
1
2
3
4
5
6
7
8
9git init #初始化
git add . #上传所有文件
git commit -m "init" #提交时的注释
git remote add origin <RepoGit> #连接你仓库的Git地址,使电脑知道代码要上传至哪个仓库
git branch -M <BranchName> #将默认main分支名改为你自己设置的,不改可跳过
#若第一次提交要加上"-u",如下
git push -u origin <BranchName>
#若提交失败,显示:error: failed to push some refs to,则加上"-f"来强制提交
git push [-u] origin <BranchName> -f纯享版(按需自行更改):
1
2
3
4
5git init
git add .
git commit -m "init"
git remote add origin <RepoGit>
git push -u origin main
设置 GitHub 仓库私有化
- 进入仓库
- 点击
Settings
拉到最下,点击Change visibility
git clone 速度太慢解决方法
使用 github 的镜像网站进行访问,github.com.cnpmjs.org,只需在 HTTPS 型仓库 Git 地址里的github.com
后加.cnpmjs.org
,不出意外下载速度会很快。
注意:只对 HTTPS 有效,对 SSH 无效
参考教程:Git 系列 (01):git clone 速度太慢解决方法
更改 git 提交记录 commit
场景:有时候你
git commit -m "<Custom>"
时发现<Custom>
描述有误想改(此时还没有 push)
- 在
git bash
里输入git commit --amend
- 按下
insert
键即可输入信息,第一行就是你刚才输入有误的<Custom>
- 更改后按下
Esc
,再输入:wq
即可保存状态 - 再来 push 到远程代码仓库即可
- (额外)输入
git log
可以看你提交过的 git 历史,按下wq
可以退出 log 状态
参考教程:git commit --amend 修改 git 提交记录用法详解
撤销 git add 和 git commit
分别是:
1 | git reset HEAD |
参考文章:Git 中的各种后悔药
查看远程仓库地址
git remote -v
vscode git 不提示代码更改
步骤:
- 打开 vscode 设置
- 输入
git.path
- 点击
settings.json中编辑
- 加一行代码
"git.path": "F:/Git/Git/bin/git.exe"
(这换成你自己 git.exe 的路径)
⭐️ 更改历史Git提交记录和本地Git设置里的电子邮箱和用户名
背景:我有两个账号,有时候会阴差阳错用另一个账号提交,导致了我账号里的贡献表里没有显示,虽然贡献表对我未来求职没有特别显著的帮助,但我还是觉得真实数据的表格看起来更顺眼、心里也踏实。
历史Git提交记录
1 | git filter-branch -f --env-filter "GIT_AUTHOR_EMAIL='new_email'; GIT_COMMITTER_EMAIL='new_email';" HEAD |
注意:
- 输入这些命令之前,得确保提交分支为空,如果有代码尚未提交,那么请先 push 到仓库。
new_email
请替换成你的目标邮箱,注意有 2 个。main
为你分支名。
本地Git设置
1 | # 检查你的 Git 配置 |
结束语:
如果有疑问或哪个地方表述有问题、有更好解决方案,欢迎留言!啊啊啊