商汇粹外网资源平台

搜索
查看: 1830|回复: 4

使用hexo,如果换了电脑怎么更新博客?

[复制链接]

该用户从未签到

1

主题

9

帖子

33

积分

新手上路

Rank: 1

积分
33
发表于 2022-10-28 09:03:28 | 显示全部楼层 |阅读模式
其实,Hexo生成的文件里面是有一个.gitignore的,所以它的本意应该也是想我们把这些文件放到GitHub上存放的。但是考虑到如果每个GitHub Pages都需要额外的一个仓库存放这些文件,就显得特别冗余了。这个时候就可以用分支的思路!一个分支用来存放Hexo生成的网站原始的文件,另一个分支用来存放生成的静态网页。
最近我也用GitHub Pages搭建了一个独立博客,想到了这个方法,使用之后真的特别简洁。为了更直观地说明,奉上使用这种方法不同时候的流程:
-----------------------------------------------------------  华丽的分割线1 ----------------------------------------------------------
一、关于搭建的流程
1. 创建仓库,http://CrazyMilk.github.io;
2. 创建两个分支:master 与 hexo;
3. 设置hexo为默认分支(因为我们只需要手动管理这个分支上的Hexo网站文件);
4. 使用git clone git@github.com:CrazyMilk/CrazyMilk.github.io.git拷贝仓库;
5. 在本地http://CrazyMilk.github.io文件夹下通过Git bash依次执行npm install hexo、hexo init、npm install 和 npm install hexo-deployer-git(此时当前分支应显示为hexo);
6. 修改_config.yml中的deploy参数,分支应为master;
7. 依次执行git add .、git commit -m "..."、git push origin hexo提交网站相关的文件;
8. 执行hexo g -d生成网站并部署到GitHub上。
这样一来,在GitHub上的http://CrazyMilk.github.io仓库就有两个分支,一个hexo分支用来存放网站的原始文件,一个master分支用来存放生成的静态网页。完美( •̀ ω •́ )y!
二、关于日常的改动流程
在本地对博客进行修改(添加新博文、修改样式等等)后,通过下面的流程进行管理。
1. 依次执行git add .、git commit -m "..."、git push origin hexo指令将改动推送到GitHub(此时当前分支应为hexo);
2. 然后才执行hexo g -d发布网站到master分支上。
虽然两个过程顺序调转一般不会有问题,不过逻辑上这样的顺序是绝对没问题的(例如突然死机要重装了,悲催....的情况,调转顺序就有问题了)。
三、本地资料丢失后的流程
当重装电脑之后,或者想在其他电脑上修改博客,可以使用下列步骤:
1. 使用git clone git@github.com:CrazyMilk/CrazyMilk.github.io.git拷贝仓库(默认分支为hexo);
2. 在本地新拷贝的http://CrazyMilk.github.io文件夹下通过Git bash依次执行下列指令:npm install hexo、npm install、npm install hexo-deployer-git(记得,不需要hexo init这条指令)。
----------------------------------------------------------  华丽的分割线2 ----------------------------------------------------------
以上就是我采用的方法,虽说文字有点多,但是我个人觉得真的挺高效和简洁的。更详细的可以参考我刚写的博文:
GitHub Pages + Hexo搭建博客。
第一次回答问题,略紧张呢 ( •̀ ω •́ )y
回复

使用道具 举报

该用户从未签到

1

主题

5

帖子

36

积分

新手上路

Rank: 1

积分
36
发表于 2022-10-28 09:30:33 | 显示全部楼层
不知道题主是不是换了新电脑,需要在新电脑上进行部署,如果是,可以参考下面的方法:
1. 从官网Git下载git,在新电脑上安装,因为https速度慢,而且每次都要输入口令,常用的是使用ssh。使用下面方法创建:
(1)打开git bash,在用户主目录下运行:ssh-keygen -t rsa -C "youremail@example.com" 把其中的邮件地址换成自己的邮件地址,然后一路回车
(2)最后完成后,会在用户主目录下生成.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH key密钥对,id_rsa是私钥,千万不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
(3)登陆GitHub,打开「Settings」->「SSH and GPG keys」,然后点击「new SSH key」,填上任意Title,在Key文本框里粘贴公钥id_rsa.pub文件的内容(千万不要粘贴成私钥了!),最后点击「Add SSH Key」,你就应该看到已经添加的Key。
注意:不要在git版本库中运行ssh,然后又将它提交,这样就把密码泄露出去了。
2. 下载Node.js,并安装
3. 打开git bash客户端,输入 npm install hexo-cli -g,开始安装hexo
4. 下面就将原来的文件拷贝到新电脑中,但是要注意哪些文件是必须的,哪些文件是可以删除的。
(1)讨论下哪些文件是必须拷贝的:首先是之前自己修改的文件,像站点配置_config.yml,theme文件夹里面的主题,以及source里面自己写的博客文件,这些肯定要拷贝的。除此之外,还有三个文件需要有,就是scaffolds文件夹(文章的模板)、package.json(说明使用哪些包)和.gitignore(限定在提交的时候哪些文件可以忽略)。其实,这三个文件不是我们修改的,所以即使丢失了,也没有关系,我们可以建立一个新的文件夹,然后在里面执行hexo init,就会生成这三个文件,我们只需要将它们拷贝过来使用即可。总结:_config.yml,theme/,source/,scaffolds/,package.json,.gitignore,是需要拷贝的。
(2)再讨论下哪些文件是不必拷贝的,或者说可以删除的:首先是.git文件,无论是在站点根目录下,还是主题目录下的.git文件,都可以删掉。然后是文件夹node_modules(在用npm install会重新生成),public(这个在用hexo g时会重新生成),.deploy_git文件夹(在使用hexo d时也会重新生成),db.json文件。其实上面这些文件也就是.gitignore文件里面记载的可以忽略的内容。总结:.git/,node_modules/,public/,.deploy_git/,db.json文件需要删除。
5. 在git bash中切换目录到新拷贝的文件夹里,使用 npm install 命令,进行模块安装。很明显我们这里没用hexo init初始化,因为有的文件我们已经拷贝生成过来了,所以不必用hexo init去整体初始化,如果不慎在此时用了hexo init,则站点的配置文件_config.yml里面内容会被清空使用默认值,所以这一步一定要慎重,不要用hexo init。
6. 安装其他的一些必要组件,如果在node_modules里面有的,就不要重复安装了:
(1)为了使用hexo d来部署到git上,需要安装
npm install hexo-deployer-git --save
(2)为了建立RSS订阅,需要安装
npm install hexo-generator-feed --save
(3)为了建立站点地图,需要安装
npm install hexo-generator-sitemap --save
插件安装后,有的需要对配置文件_config.yml进行配置,具体怎么配置,可以参考上面插件在github主页上的具体说明
7. 使用hexo g,然后使用hexo d进行部署,如果都没有出错,就转移成功了!
「广告时间」:如果感觉有用,不妨点下「赞」,让更多人看到。如果想转载,请注明出处,^_^!
回复

使用道具 举报

该用户从未签到

0

主题

2

帖子

32

积分

新手上路

Rank: 1

积分
32
发表于 2022-10-28 09:57:38 | 显示全部楼层
我的个人博客:http://fangzh.top,里面有教程,欢迎来访。


git分支进行多终端工作

问题来了,如果你现在在自己的笔记本上写的博客,部署在了网站上,那么你在家里用台式机,或者实验室的台式机,发现你电脑里面没有博客的文件,或者要换电脑了,最后不知道怎么移动文件,怎么办?
在这里我们就可以利用git的分支系统进行多终端工作了,这样每次打开不一样的电脑,只需要进行简单的配置和在github上把文件同步下来,就可以无缝操作了。




机制

机制是这样的,由于hexo d上传部署到github的其实是hexo编译后的文件,是用来生成网页的,不包含源文件。







也就是上传的是在本地目录里自动生成的.deploy_git里面。
其他文件 ,包括我们写在source 里面的,和配置文件,主题文件,都没有上传到github









所以可以利用git的分支管理,将源文件上传到github的另一个分支即可。


上传分支

首先,先在github上新建一个hexo分支,如图:







然后在这个仓库的settings中,选择默认分支为hexo分支(这样每次同步的时候就不用指定分支,比较方便)。







然后在本地的任意目录下,打开git bash,
git clone git@github.com:ZJUFangzh/ZJUFangzh.github.io.git
将其克隆到本地,因为默认分支已经设成了hexo,所以clone时只clone了hexo。


接下来在克隆到本地的ZJUFangzh.github.io中,把除了.git 文件夹外的所有文件都删掉
把之前我们写的博客源文件全部复制过来,除了.deploy_git。这里应该说一句,复制过来的源文件应该有一个.gitignore,用来忽略一些不需要的文件,如果没有的话,自己新建一个,在里面写上如下,表示这些类型文件不需要git:
.DS_StoreThumbs.dbdb.json*.lognode_modules/public/.deploy*/
注意,如果你之前克隆过theme中的主题文件,那么应该把主题文件中的.git文件夹删掉,因为git不能嵌套上传,最好是显示隐藏文件,检查一下有没有,否则上传的时候会出错,导致你的主题文件无法上传,这样你的配置在别的电脑上就用不了了。
而后
git add .git commit –m "add branch"git push
这样就上传完了,可以去你的github上看一看hexo分支有没有上传上去,其中node_modules、public、db.json已经被忽略掉了,没有关系,不需要上传的,因为在别的电脑上需要重新输入命令安装 。







这样就上传完了。


更换电脑操作

一样的,跟之前的环境搭建一样,

  • 安装git
sudo apt-get install git

  • 设置git全局邮箱和用户名
git config --global user.name "yourgithubname"git config --global user.email "yourgithubemail"

  • 设置ssh key
ssh-keygen -t rsa -C "youremail"#生成后填到github和coding上(有coding平台的话)#验证是否成功ssh -T git@github.comssh -T git@git.coding.net #(有coding平台的话)

  • 安装nodejs
sudo apt-get install nodejssudo apt-get install npm

  • 安装hexo
sudo npm install hexo-cli -g
但是已经不需要初始化了,
直接在任意文件夹下,
git clone git@………………
然后进入克隆到的文件夹:
cd xxx.github.ionpm installnpm install hexo-deployer-git --save
生成,部署:
hexo ghexo d


然后就可以开始写你的新博客了
hexo new newpage


Tips:

  • 不要忘了,每次写完最好都把源文件上传一下
git add .git commit –m "xxxx"git push

  • 如果是在已经编辑过的电脑上,已经有clone文件夹了,那么,每次只要和远端同步一下就行了
git pull
回复

使用道具 举报

该用户从未签到

0

主题

6

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2022-10-28 10:24:43 | 显示全部楼层
其实很简单,用两个GitHub Repo,一个Repo放你Hexo的源文件(这里称之为Source Repo),另一个Repo放Hexo生成出来的静态网站(这里称之为Content Repo),然后使用AppVeyor做持续集成。每当需要更新博客,只需要更新Source Repo,AppVeyor会自动生成静态网站并push到Content Repo,一气呵成,版本控制完全由GitHub完成,也不需要手动deploy。具体步骤可以参见我的这篇文章:
Hexo的版本控制与持续集成
回复

使用道具 举报

该用户从未签到

2

主题

5

帖子

31

积分

新手上路

Rank: 1

积分
31
发表于 2022-10-28 10:51:48 | 显示全部楼层
背景:
1. 宿舍,双系统,Linux做主系统。
2. 实验室,单系统,Linux。
我的方法:
1. 随身携带优盘,写了个脚本可自动备份到优盘,拔了拿回宿舍使用
2. 若忘记了带回去了,在宿舍用ssh远程获取。
3. 宿舍双系统所以博客会放到共享盘,只要在WIndows装个客户端即可。
4. Google Drive备份,以防万一:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表