背景:一台电脑上已有一个在用的博客,又新用了一台电脑,实现原电脑和新电脑都可以提交更新博客,实现同步或者说博客的版本管理。
步骤:
- 在原电脑上操作,给 username.github.io 博客仓库创建hexo分支,并设为默认分支。(具体可参考这篇文章的操作,有图示)
- 如果未给你的 github 账号添加过当前电脑生成的 ssh key,需要创建 ssh key 并添加到 github 账号上。(如何创建和添加 github help 就有)
- 随便一个目录下,命令行执行 git clone git@github.com:username/username.github.io.git 把仓库 clone 到本地。
- 显示所有隐藏文件和文件夹,进入刚才 clone 到本地的仓库,删掉除了 .git 文件夹以外的所有内容。
- 命令行 cd 到 clone 的仓库,git add -A ,git commit -m "--",git push origin hexo,把刚才删除操作引起的本地仓库变化更新到远程,此时刷新下 github 端博客hexo分支,应该已经被清空了。
- 将上述 .git 文件夹复制到本机本地博客根目录下(即含有 themes、source 等文件夹的那个目录),现在可以把上述 clone 的本地仓库删掉了,因为它已经没有用了,本机博客目录已经变成可以和 hexo 分支相连的仓库了。
- 将博客目录下 themes 文件夹下每个主题文件夹里面的 .git .gitignore 删掉。
- cd 到博客目录,git add -A ,git commit -m "--",git push origin hexo,将博客目录下所有文件更新到 hexo 分支。如果上一步没有删掉 .git .gitignore,主题文件夹下内容将传不上去。至此原电脑上的操作结束。
- 在新电脑上操作,先把新电脑上环境安装好,node.js、git、hexo,ssh key 也创建和添加好。
- 选好博客安装的目录, git clone git@github.com:username/username.github.io.git 。
- cd 到博客目录,npm install、hexo g && hexo s,安装依赖,生成和启动博客服务。正常的话,浏览器打开 localhost:4000 可以看到博客了。至此新电脑操作完毕。
- 以后无论在哪台电脑上,更新以及提交博客,依次执行,git pull,git add -A ,git commit -m "--",git push origin hexo,hexo clean && hexo g && hexo d 即可。
参考链接:hexo 博客同步管理及迁移
三、本地资料丢失后的流程
新MacBook pro修改博客
command + space
Terminal.app
cd ~/.ssh
ssh-keygen -t rsa -C "[youremail@example.com](mailto:youremail@example.com)"
more id_rsa.pub
https://github.com/settings/keys
进入项目根目录
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install nodejs
git clone git@github.com:username/username.github.io.git hexo
cd hexo
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install hexo-cli -g
cnpm install
cnpm install hexo-deployer-git
hexo g && hexo s
(记得,不需要hexo init这条指令)。
git add -A #将文件的修改上传到暂存区
git commit -m '说明' #提交到本地仓库
git push origin hexo #推送到GitHub网站上
hexo clean && hexo g && hexo d
hexo clean //清除缓存文件 (db.json) 和已生成的静态文件 (public)
hexo s //本地预览
hexo g //生成缓存和静态文件
hexo d //重新部署到服务器