云端化:博客多终端协同部署
全流程将一个本地博客变成一个云端博客
前言/逻辑图解
马上就要放假离开实验室了,在这期间虽然也能通过离线写MD来记录自己的所思所想。但长远一想,这里是一辈子的事情,我不可能以后都依赖某一台电脑进行博客的更新,所以便想到了将自己的博客源代码一样也上传到云端保存,这样哪怕随手拿到一台电脑,稍微配置一下也能开始进行写作,于是便有了这一篇笔记
构思与实现逻辑
上传源码到云端
操作前提 |
---|
本地博客可以通过hexo正确部署到对应web |
正确安装git并配置好环境变量 |
方法一:新建仓
- 云端:在GitHub上new 一个新的代码仓:需要在GitHub上创建一个用于存储源码的库,建议最好选择 “private” 不要公开,除非你博客的所有内容打算完全公开。
- 本地:
- 打开你的本地博客目录,目录下有一个 “.gitignore” 文件,没有就自己创建一个,该文件用于忽略指定的文件不进行同步,根据你的要求进行配置。一般配置内容如下:
1
2
3
4
5
6
7.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/ - 右键打开git,依次输入命令与你的远程仓库连接
1
2
3
4
5
6
7
8
9# 初始化本地仓库
git init
# 本地仓库和GitHub远程仓库对接
# nineya/blog_source.git修改为准备用于存放源码的仓库名
git remote add origin git@github.com:github use name(Owner)/Repository name.git
# 查看远程仓库地址,验证配置是否正确
git remote -v - 源码提交
1
2
3
4
5
6
7
8
9# 下拉同步远程库上的数据,否则无法提交,后缀为无视时间差(无时间bug可不带)
git pull origin master --allow-unrelated-histories
# 将所有文件添加到本地仓库:git add -A(全部放入本地仓库)/git add . (修改放入本地仓库)
git add -A
# 提交到远程仓库
git commit -m "博客源文件"
git push
- 打开你的本地博客目录,目录下有一个 “.gitignore” 文件,没有就自己创建一个,该文件用于忽略指定的文件不进行同步,根据你的要求进行配置。一般配置内容如下:
方法二:新建分支
- 远程分支:maser、hexo存放不同文件内容。
- hexo分支:存放本地文件,包括建站所需的配置文件、资源文件夹、主题文件夹、模板文件夹等,具体如下:【注】这里没有public文件夹,其实本地执行hexo d -g 发布命令会将由md文件渲染的静态文件放入public中。
文件框架如下:
├── _config.yml 配置信息,在此配置大部分的参数
├── package.json 应用程序的信息。EJS, Stylus 和 Markdown renderer 已默认安装
├── scaffolds 模版文件夹
├── source 存放用户资源的地方
| ├── _drafts
| └── _posts
└── themes 主题 文件夹
- hexo分支:存放本地文件,包括建站所需的配置文件、资源文件夹、主题文件夹、模板文件夹等,具体如下:【注】这里没有public文件夹,其实本地执行hexo d -g 发布命令会将由md文件渲染的静态文件放入public中。
- 具体步骤
- 旧的设备做好备份本地文件到远程的hexo分支下,假定旧的设备是自己以及搭建hexo博客成功到master上了。做完Github Pages页面了。所以master分支下已有hexo生产的静态文件等。
1
2
3
4
5
6
7git init //初始化本地仓库
git add source //将必要的文件依次添加,有些文件夹如npm install产生的node_modules由于路径过长不好处理,所以这里没有用`git add .`命令了,而是依次添加必要文件,如下图所示.使用git add -A 可以自动把node_modules文件夹忽略。选择依次add或add -A都可以,下面图是add -A提交后的,测试是可以的
git commit -m "Blog Source Hexo"
git branch hexo //新建hexo分支
git checkout hexo //切换到hexo分支上
git remote add origin git@github.com:yourname/yourname.github.io.git //将本地与Github项目对接
git push origin hexo //push到Github项目的hexo分支上
- 旧的设备做好备份本地文件到远程的hexo分支下,假定旧的设备是自己以及搭建hexo博客成功到master上了。做完Github Pages页面了。所以master分支下已有hexo生产的静态文件等。
新设备连接云端
前提
- 新设备正确安装git、nodejs
- 配置好git npm环境变量
- 将新电脑的生成的ssh key添加到GitHub账户上
- 首先在本地创建 SSH Keys:
1
$ ssh-keygen -t rsa -C “xxxx@xx.com“
- 成功的话会在 ~/下生成 .ssh文件夹,进去,打开 id_rsa.pub,复制里面的key即可。然后拷贝到 Github 的 SSH Keys(这里要添加一个新的)
- 然后在终端中,我们再次测试下公钥有没有添加成功:ssh -T git@github.com
- 会弹出确认命令,输入yes,会弹出Hi,你的名字等等,这就代表成功了
1
2
3
4
5
6
7
8
9
10
11
12# 克隆博客源码到本地(顺便与相应分支产生了连接)
git clone git@github.com:631212502/blog_source.git blog
# 打开博客根目录
cd blog
# 安装对应npm的资源包依赖
npm install
# 安装hexo
npm install hexo-cli -g //如果出错,
npm install -g hexo 或者sudo npm install -g hexo
- 首先在本地创建 SSH Keys:
完毕:更新迭代
设备每次使用或者更新blog 都参照以下流程
1 |
|
附录:常用的git操作命令
可视化版可以使用小乌龟
Git 命令初识
示例:从Git 版本库的初始化,通常有两种方式:
git clone: 简单的初始化方式,有一个远程的Git版本库,只需要在本地克隆一份就可以完成连接
例如:git clone git://github.com/someone/some_project.git some_project
上面的命令就是将’git://github.com/someone/some_project.git’这个URL地址的远程版本库,完全克隆到本地some_project目录下
git init 和 git remote: 这种方式稍微复杂一些,当你本地创建了一个工作目录,你可以进入这个目录,使用’git init’命令进行初始化;Git以后就会对该目录下的文件进行版本控制,这时候如果你需要将它放到远程服务器上,可以在远程服务器上创建一个目录,并把可访问的URL记录下来,此时你就可以利用’git remote add’命令来增加一个远程服务器端,
例如:git remote add origin git://github.com/someone/another_project.git
上面的命令就会增加URL地址为’git://github.com/someone/another_project.git’,名称为origin的远程服务器,以后提交代码的时候只需要使用 origin别名即可
Git 常用命令以及速查表
Git | Context |
---|---|
git branch -v/a/vv | 查看本地/远程/所有/映射分支 |
git status | 查看当前git控制版本情况,有无提交 |
git commit -m””/-v | 提交改动/查看提交差异 |
git remote add origin git@ | |
git push origin XXXX(分支名称) | 推送到远端服务器 |
git remote show origin | 显示远端仓库内容 |
git push origin master: dev | 本地与远端连接 |
git checkout –track origin/dev | 切换到远程dev分支 |
git branch -D master develop | 删除本地库develop |
git checkout -b dev | 切换并建立(-b)一个新的本地分支dev |
git merge origin/dev | 将分支dev与当前分支进行合并 |
git config –list | 看所有用户 |
git ls-files | 看已经被提交的 |
git commit -a | 提交当前repos的所有的改变 |
git add [file name] | 添加一个文件到git index |
git log | 看你commit的日志 |
git stash push | 将文件给push到一个临时空间中 |
git stash pop | 将文件从临时空间pop下来 |
git pull | 本地与服务器端同步 |
git push origin server fix:awesome branch | git push (远程仓库名) (分支名) 将本地分支推送到服务器上去 |
远程仓库使用
1 |
|
分支操作
1 |
|
版本命令
1 |
|