hexo+github搭建个人博客

2023-05-16

主要工具简介

  1. GitHub。
    使用GitHub托管代码,将你的博客发布到网上供他人浏览。
  2. **git(主要使用git bash)。**git–程序员的时光机,保存文件,为你随时恢复你想要的版本。
    本次搭建博客过程中使用git进行版本控制,并将本地仓库托管到GitHub进行管理。
  3. **Node.js(主要使用其工具npm下载hexo)。**Node.js 就是运行在服务端的 JavaScript,Node.js 的包管理器 npm,是全球最大的开源库生态系统。
    npm相当于软件管家,搜索、下载和删除包。
  4. **hexo。**Hexo是一个基于nodejs 的静态博客网站生成器。

主要思路

注册GitHub账户并创建远程仓库;安装git和Node.js;使用git bash和npm下载hexo;使用hexo本地编辑博客并实现本地预览;使用git bash部署到GitHub供人浏览观看;主题美化。

一、Git

1. 下载安装

前往Git网址下载安装git即可。
下载安装完成后点击【开始】即可看到

gitmenu.png

Git CMD:
  cmd就是添加了一些新功能后的PowerShell。
Git GUI:
  Git GUI是Git Bash的替代品,为Windows用户提供了更简便易懂的图形界面。
Git Bash:
  Git中的Bash是基于CMD的,在CMD的基础上增添一些新的命令与功能。所以建议在使用的时候,用Bash更加方便。

2. 设置用户

下载后打开Git Bash第一件事就是设置用户。目的时告诉远程仓库谁上传的。

git config --global user.name "GitHub的用户名"(注意前边是“--global”,有两个横线)
git config --global user.email "注册GitHub使用的邮箱"

image-20210618213930953.png

然后通过下面代码即可查看用户信息配置。

git config --global --list

3. git的简单使用(了解学习)

3.1文件上传

git add -A //提交所有变化
git commit -m "注释" //添加注释
git push -u 远程仓库的别名(origin) 分支名(master) //上传(-u只在第一次上传时使用即可)

3.2文件下拉

手动在GitHub网页进行更改后,再次git push会报错,因为本地仓库与远程仓库出现了差异。这时可将远程仓库下拉进行操作。
方法1:git pull 远程仓库的别名
方法2:

git fetch
git merge

我们可以认为 pull = fetch+merge。git fetch 并没更改本地仓库的代码,只是拉取了远程数据,git merge才执行合并数据。

小结

push到远程:

git add添加到上传缓存区
git commit给缓存区的内容添加备注,此时本地的commit修改啦,但是远程的commit和文件都没修改。
git push 修改远程文件和commit信息
下拉文件

git fetch 将数据拉下来,但是没修改本地的commit和文件
git merge 改变本地数据

3.3文件克隆

使用的命令为:

git clone 链接地址

打开GitHub仓库点击右上角的绿色按钮Code

img

其中链接地址有三种:

1.https 均可使用

2.SSH 仓库主人是你

3.GitHub CLI 新出的GitHub命令行模式

还有两种Open with Github Desktop(在桌面版GitHub打开)和Download zip(下载压缩文件)

区分一下zip和git clone:

1.采用git clone的项目包含.git目录,这里面有历史版本信息

2.采用下载zip文件的是没有版本历史信息的。只是当前分支的最新版本

4. git进阶

4.1、工作机制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pxFHYPfw-1658208047804)(C:\Users\F\AppData\Roaming\Typora\typora-user-images\image-20220718234432470.png)]

4.2、配置git

命令名称作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户邮箱
git config --list查看git的配置列表

4.3、git操作

命令名称作用
git init初始化本地库
git add 文件名添加指定文件到暂存区
git add .添加该文件夹下的全部文件到暂存区
git status查看本地库状态
初始为空,加入暂存区后为绿色,工作区中添加修改删除文件为红色,提交到本地库时为空。
git rm --cached 文件名删除暂存区文件。本地文件还在。
git commit -m “日志信息” (文件名)提交到本地库
git reflog查看历史记录
git log查看版本信息(更为详细)
git reset --hard 版本号版本穿梭

Git首次安装必须设置一下用户签名,否则无法提交代码。

注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。

4.4、分支的操作

命令名称作用
git branch 分支名创建分支
git branch -m 旧名字 新名字重命名分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上

4.4.1、合并分支

基本语法:git merge 分支名

①正常合并不冲突
②合并产生冲突

冲突产生的原因:

  • 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。
  • 有两套完全不同的修改。 Git无法替我们决定使用哪一个。必须人为决定新代码内容。

解决冲突:

  • 编辑有冲突的文件,删除特殊符号,决定要使用的内容

    • 特殊符号:<<<<<< HEAD 当前分支的代码 ==== 合并过来的代码 >>>>>>>hot-fix
  • 删除完成之后保存,再次添加到暂存区,并再次提交到本地库

  • 注意:此时使用 git commit 命令时候不能带文件名

4.5、远程仓库操作

命令名称作用
git remote -v查看当前所有远程地址别名
git remote add 别名 远程地址起别名
git push 别名 分支推送本地分支上的内容克隆到本地
git clone 远程地址将远程仓库的内容克隆到本地
git pull 远程库地址别名 远程分支名将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并

4.6、SSH免密登录

1.输入以下命令后,连续按回车键,生成密钥文件。

ssh-keygen -t rsa -C 自己的邮箱签名

2.C:\Users\F.ssh文件夹下生成文件。

3.复制id_rsa.pub文件中的内容。在github中添加公钥,即可免密登录。


参考:GitHub教程 Git Bash详细教程


二、Node.js

1. Node.js和npm简单介绍

Node.js(主要使用其工具npm下载hexo)。Node.js 就是运行在服务端的 JavaScript,Node.js 的包管理器 npm,是全球最大的开源库生态系统。相当于软件管家,搜索、下载和删除包。

npm和maven、gradle十分相似。但是maven与gradle是用来管理Java jar包的,而npm是用来管理js的

2. Node.js安装

2.1 下载

Node.js中文官网:https://nodejs.org/zh-cn/

直接选择下一步完成安装

cmd命令打开使用以下命令查看nodejs版本:

image-20220219124109050

安装的文件夹【D:\Environment\nodejs】下创建两个文件夹【node_global】及【node_cache】

image-20220219124135484

创建完两个空文件夹之后,打开cmd命令窗口,输入

npm config set prefix "D:\Environment\nodejs\node_global"  //设置使用npm全局安装时下载文件的位置
npm config set cache "D:\Environment\nodejs\node_cache"    //设置缓存位置
npm config set registry https://registry.npm.taobao.org/   //更换镜像源,加快下载速度
npm config list                                            //显示配置信息

2.2 配置环境变量

==在【系统变量】下新建【NODE_PATH】,输入【D:\Environment\nodejs\node_global\node_modules】==设置下载位置

使用 npm -g 安装的时候,默认的模块D:\Environment\nodejs\node_modules 目录将会改变为

D:\Environment\nodejs\node_global\node_modules目录

将【系统变量】下的【Path】添加【D:\Environment\nodejs\node_global】

否则报错:‘vue’不是内部或外部命令,也不是可运行的程序或批处理文件。

2.3 安装vue-cli并测试

全局安装hexo

npm install -g @vue/cli    //全局下载安装vue脚手架
vue -V                    //查看vue版本信息

image-20220221180759907

3.nvm工具使用

为了方便在不同版本node.js中来会切换,可以使用nvm工具。

参考文章:https://blog.csdn.net/qq_38970408/article/details/124474050

三、hexo + github 搭建博客详细教程

hexo是一个基于node.js的快速生成静态博客的开源框架,支持Markdown和大多数Octopress插件,一个命令即可部署到GitHub页面,强大的API,可无限扩展,拥有数百个主题和插件。

1. 仓库设置

使用git的主要目的时把本地的代码放到远程仓库进行托管。
主要过程为:

1.1 远程仓库

打开github,右上角点击new repository

image-20210619131757783.png

填写仓库的相关信息

image-20220123001120823

注意:

后续使用hexo d命令上传的只有静态页而不是你本地仓库的全部文件,这里需要介绍一些特殊情况:例如更换电脑或者不小心删除了文件夹,因此在创建远程仓库时我们选择为一个仓库创建两个分支。

main //仓库默认分支,用来存放我们的静态页面。
hexo //新建分支为我们的本地仓库进行备份防止丢失。

分支:

GitHub里可以创建新的仓库用来托管你的代码,但每各项目都创建一个仓库是不明智的。因此便产生了分支,即在同一仓库下建立不同的分支进行管理。

通过git bash运行以下命令,这里命名新分支为hexo

git branch “分支名”` //创建新的分支
git branch  		//查看本地分支
git checkout "分支名"//切换其他分支
git branch -d "分支名"//删除分支

然后更换hexo分支设置为默认分支,在后续管理过程中我们只需要管理hexo分支即可。

新建hexo分支,加上默认带的main共有两个分支。hexo分支用来存放网站的原始文件,main用来存放生成的静态文件。

image-20220123001358069

在Setting中设置hexo为默认分支。

image-20220123225237129

1.2 建立连接

建立SSH连接是为了方便上传文件,不用每次输入GitHub密码

1.2.1配置SSH

随便找个位置使用Git Bush Here

~/.ssh   //检查电脑上是否有SSH Key
ssh-keygen -t rsa -C "你的邮箱"  //创建SSH Key
~/.ssh  //再次检查,找到创建的SSH文件,用记事本打开id_rsa.pub文件复制保存

在github的Settings中创建一个SSH keys,名字随便起,将复制的内容填入保存

image-20220124230552742

测试:

ssh -T git@github.com

image-20220124233729141

详情参考[GitHub教程 SSH keys配置](GitHub教程 SSH keys配置_LolitaSian-CSDN博客)

1.3 本地仓库

image-20220124234246921

任意文件夹下,将远程仓库克隆到本地,.git隐藏文件,表示让git对该文件夹进行版本控制。

git clone 仓库的地址(使用ssh不用每次都输入密码,https需要输入密码)
hexo init		//hexo初始化文件夹,会生成很多文件(注意:克隆的仓库文件先放其他位置,否则该命令会报错)
npm install hexo-deployer-git --save	//安装,保证hexo -d命令能使用

修改_config.yml中的deploy参数(设置将生成的静态文件上传到main分支)

deploy:
  type: git
  repo: 仓库地址
  branch: main

依次执行以下命令提交网站相关的文件(hexo存放网站的原始文件)

git add .
git commit -m "init"
git push origin hexo

1.4 更换电脑如何使用

安装Node.js,Git和hexo-cli脚手架

拷贝仓库(默认分支为hexo)

git clone 仓库的地址

在本地新拷贝的http://CrazyMilk.github.io文件夹下通过Git bash依次执行下列指令:

npm install
npm install hexo-deployer-git --save(记得,不需要hexo init这条指令)

2.新建文章

2.1新建文章

方式一:

hexo new "文章名"

默认是创建在(E:/blog/source/_posts)下的

方式二:

直接在创建的文件夹下(E:/blog/source/_posts)新建.md文件来编写博客内容。可以新建文件夹对文章进行分类,方便管理。

img

hexo generate

该命令将文本文件解析成网页。

2.2本地预览

hexo clean
hexo sercer

在浏览器访问http://localhost:4000即可查看效果,查看完毕后按Ctrl/) + C停止后台服务。

3.部署到github

3.1部署

hexo clean //清除缓存
hexo g //生成静态页
hexo d //部署到github

点右上角的setting,进去之后下拉找到git pages,点击链接即可进入你的博客。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hexo+github搭建个人博客 的相关文章

  • 在 git 中编辑分支?

    我在 github 网站上创建了一个分支 该分支不在我的本地存储库中 如何将该分支带到我的本地计算机 对其进行编辑 然后将其推送回我的 github 帐户 在本地工作目录中输入 git fetch origin newbranch git
  • 如何使用 Github Pages 分支正确提交到存储库中

    我有一个问题 情况基于gh pages https pages github com 我的项目使用预处理器和其他困难的人员 因此 我的项目结构如下所示 主分支 src node modules public js css etc index
  • 恢复后如何挑选提交?

    我正在研究我的feature branch并在审核后合并到development待部署 后来 一位同事决定发布一个版本 并将他和我的合并到master 在部署时 他意识到他的代码有错误并恢复了master 在我们的分叉和拉动流程中 这意味着
  • 使用 Dropbox 作为跨多台机器的 git 工作目录 - 提交不能完美同步

    首先 我想强调这个问题与在 Dropbox 上托管我的中央存储库无关 而且我对使用 git 还很陌生 我能找到的其他涉及 Dropbox 和 git 的问题都没有真正回答我的问题 它们要么是关于使用 Dropbox 托管您的存储库 要么是关
  • 我可以为 GitHub Pages 创建多个存储库吗?

    我创建了一个用于在 GitHub 上托管博客的存储库 有什么方法可以创建额外的存储库来托管多个博客 或者我仅限于一个存储库 因为用户名 github io只能使用一次吗 您可以将一个站点发布到https
  • 从 git 中删除历史记录 - git 命令失败

    我正在尝试从 Git 历史记录中清除项目 bin 目录 我已经将 bin 添加到 gitignore 并运行 git rm cached r bin成功地 现在我尝试使用 GitHub 帮助页面中推荐的命令来清除历史记录 git filte
  • 我可以通过链接分享我的私人 GitHub 存储库吗?

    我在 GitHub 上的私人存储库中有一个 Java 应用程序 我想与没有帐户的人共享它 我在网站上没有找到任何与此相关的选项 有没有办法做到这一点 协作者只能是 GitHub 用户 无法在非 Github 用户之间共享私有存储库 您需要
  • 通过 GitHub、Sonatype Maven 存储库提供 JavaDocs [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 尽管 Github 为 Java 开源项目提供了一个不错的家园 但与更成熟的开源托管场所相比 仍然缺少一些东西 到目前为止 我发现 S
  • 无法验证 GitHub 中的虚假电子邮件

    我已经创建了一个 GitHub 帐户 并且我不喜欢公开分享我的电子邮件地址 我厌倦了垃圾邮件 所以我关注了 GitHub保密您的电子邮件地址 https help github com articles keeping your email
  • git - 更新 fork 的 master 并将我的分支重新建立到它之上?

    我分叉了一个 github 项目 然后将其克隆到本地 然后我在新分支中做了一些更改my github the project repo 然后我添加并提交了更改 并推送到我的 github 存储库并提交了拉取请求 所有者已收到我的请求 并希望
  • readthedocs 中自动生成的索引文件

    我无法上传到阅读文档 http docs readthedocs io en latest 我为我的项目准备的文档 我正在尝试了解问题所在 该文档在本地构建良好make html但我无法上传 GitHub 项目是ASCII基因组 https
  • 获取 GitHub 问题的管道价值?

    我使用 ZenHub 来管理 GitHub 上的问题 当我查看问题的详细信息时 我可以在 GitHub 中看到属性 pipeline 这正是保存问题的列 Now I want to get the pipeline information
  • 在 github 上的 fork 中跟踪上游的最佳实践

    摘要 对于要维护一组本地更改的上游存储库 处理长期运行跟踪的最佳实践是什么 我想让 github 上的 fork 与上游保持同步 但仍然允许清晰跟踪 fork 特有的更改 对于本次讨论 假设upstream指向主项目存储库并且origin指
  • 哪个是更智能的 git 协议,ssh 或 git(通过 ssh)或 https 协议?

    哪个高效 SSH 或 Git 文件压缩 我对 Git 的理解是 git 协议很智能 因为通信两端都有一个协议代理来压缩文件传输 从而通过有效地使用网络带宽来实现更快的克隆 From 我发现了以下说法 For secure authentic
  • git 显示已添加到 gitignore 的文件中的更改?

    我已经将 log2 文件夹和 main js 文件添加到 gitignore 如屏幕截图所示 但即使执行后git rm cached r我仍然可以看到 git 正在检测 main js 和 log2 文件夹内文件的更改 怎么会 这些的常见问
  • Netbeans 和 Git,.obj 文件被忽略

    我正在开发一个涉及 obj 文件的小型 git 项目 当我查看 项目选项卡 时 我发现它们被忽略了 但如果我查看我的 gitignore 我无法理解为什么 DepthPeeling nbproject private DepthPeelin
  • 为什么我的 Github 托管网站响应 HTTP 302 而不是 200?

    我拥有该域名penkov id au http penkov id au 我主持一个blog http michael penkov id au blog 2014 01 02 reinventing the wheel html usin
  • git 推送到 github 失败并显示“错误:pack-objects 因信号 967 死亡”

    我触发了这个命令 git push origin master 我得到这个结果 Counting objects 15626 done Delta compression using up to 4 threads error pack o
  • 从 github 中排除文件夹

    我需要从我的 Github 中排除文件夹 App Data 但我不知道如何做 我有一个应用程序 它在目录中保存许多文件 例如 jpg 文件 Source MyProject App data stored filename jpg 现在我需
  • 我可以直接在 Maven 中使用 GitHub 项目吗?

    我有兴趣使用GitHub 上的项目 https github com toelen spymemcached jcache作为我的项目中的依赖项 GitHub 项目有一个pom文件 我可以修改我的pom文件来使用这个项目 如果是这样 怎么办

随机推荐

  • numba安装与使用

    一 numba是什么 Numba是一个针对Python的开源JIT编译器 xff0c 由Anaconda公司主导开发 xff0c 可以对Python原生代码进行CPU和GPU加速 Numba对NumPy数组和函数非常友好 解释器可以参考第四
  • 目标检测中算法评价指标FPS

    一 FPS 每秒传输帧数 Frames Per Second 是什么 FPS就是目标网络每秒可以处理 xff08 检测 xff09 多少帧 多少张图片 FPS简单来理解就是图像的刷新频率 xff0c 也就是每秒多少帧 假设目标检测网络处理1
  • pytorch版本对计算能力的要求

    一 pytorch对计算能力要求 首先查看pytorch是否可用cuda完整流程应该是先查看是否在当前环境下的python In span class token punctuation span span class token numb
  • 在VS2013中配置boost_1_58_0过程和遇到的的问题

    Boost是为C 43 43 语言标准库提供扩展的一些C 43 43 程序库的总称 Boost库是一个可移植 提供源代码的C 43 43 库 xff0c 作为标准库的后备 xff0c 是C 43 43 标准化进程的开发引擎之一 xff0c
  • C语言学习专栏(1):易忘点

    C语言学习专栏系列 xff1a 版权申明 未经博主同意 xff0c 谢绝转载 xff01 xff08 请尊重原创 xff0c 博主保留追究权 xff09 xff1b 本博客的内容来自于 xff1a C语言学习专栏 xff08 1 xff09
  • git如何配置模板文件

    git如何创建模板文件 创建xxx template文件 xff0c 其内容为团队制定的Git提交注释规范 xff0c 如 xff1a Desgraption Date Author 通过git config命令配置commit templ
  • iOS很坑的error:

    iOS错误如下 error using bridging headers with module interfaces is unsupported 仔细看好错误类型 xff0c 是关于swift混合编译问题 解决办法 完美解决 xff0c
  • 使用Hexo搭建个人博客,绑定GitHub以及个人域名

    文章目录 前言安装Git安装Nodejs安装Hexo创建一个根目录安装Hexo验证安装是否成功初始化网址安装网址依赖开启本地服务 托管到Git配置git的SSH在github上配置秘钥 托管到GitHub配置仓库地址hexo安装部署的命令验
  • ubuntu定时任务的设置

    ubuntu 定时执行任务需要进行如下操作 xff1a span class token comment 使用 crontab 添加定时任务 span span class token comment 1 打开定时任务 span span
  • linux静态库、linux动态库制作、使用,动态库报错:error while loading shared libraries: libxxx.so: cannot open shared o

    接上一篇 xff1a linux C C 43 43 程序编译 gcc编译器基础使用 编译阶段 编译优化 命令大全 g 43 43 适用 本次来分享linux下C C 43 43 程序的静态库和动态库的制作和使用 xff0c 不废话 xff
  • SpringBoot热部署四步完成(idea2021.1)

    1 在pom xml文件中设置 xff08 两小步 xff09 span class token number 1 1 span xff1a 在 span class token generics span class token punc
  • spring boot中.yml配置日志文件格式正确运行出错(logging level)

    yml文件配置logging出错 格式如下 logging span class token operator span level span class token operator span com span class token p
  • 基本类型的字面值及其类型转换

    基本类型的字面值及其类型转换 一 基本类型的字面值二 类型转换 一 基本类型的字面值 1 整数字面值是int类型 2 byte xff0c short xff0c char三种比int小的整数可以用范围内的值直接赋值 3 浮点数的字面值是d
  • 使用idea创建servlet程序(idea:2021.2)

    使用idea创建servlet程序 1 Feil gt New gt Project 2 创建一个java项目 创建好之后项目结构如下图 右键项目点击Add Frameworks Support 勾选Web Application如下图 x
  • Java笔记(1)——绪论

    1 Java程序的总结 编写 xff1a 将编写的java程序保存在以 java 结尾的源文件中 编译 xff1a 使用javac exe命令编译java源文件 运行 xff1a 使用java exe命令解释运行字节码文件 2 一个Java
  • idea导入第三方jar包并打包在项目中

    IDEA项目引入第三方jar包 1 在resource创建lib文件并导入第三方jar包2 在pom xml文件中进行配置3 刷新maven 1 在resource创建lib文件并导入第三方jar包 2 在pom xml文件中进行配置 3
  • Beam Search源码理解

    本文的beam search源码来自 xff1a CodeBERT model py at master microsoft CodeBERT github com https github com microsoft CodeBERT b
  • 复现CVE-2023-21839

    攻击机安装jdk1 8 下载jdk1 8 https www azul com downloads version 61 java 8 lts amp os 61 ubuntu amp architecture 61 x86 64 bit
  • 解决ubuntu开机循环输入密码无法进入桌面的问题

    问题 xff1a ubuntu安装了QT后 xff0c 配置了环境变量 xff0c 发现登录的时候不能登录 xff0c 在登录界面循环显示 xff0c 不能进入图形化桌面 系统启动时 xff0c 会先读取 etc profile这个文件 x
  • hexo+github搭建个人博客

    主要工具简介 GitHub 使用GitHub托管代码 xff0c 将你的博客发布到网上供他人浏览 git 主要使用git bash git 程序员的时光机 xff0c 保存文件 xff0c 为你随时恢复你想要的版本 本次搭建博客过程中使用g