中心思想
远程仓库有一个 origin,其包含两个分支
- 远程hexo 分支负责存储博客的源代码
- 远程master 分支负责存储博客的静态文件
本地包含两个仓库,分别负责对应维护远程的两个分支
- 本地hexo 分支(源代码文件仓库)对应远程hexo分支,.git仓库应放于博客根目录下面
- 本地master分支(静态文件仓库)对应远程的master分支。master 分支是通过 博客根目录下面的 .deploy_git静态文件夹中的 .git仓库维护。其推送也是通过
hexo deploy
命令执行。 - 如果人工 进行 git pull master 命令会提示
refusing to merge unrelated histories
。大意是拒绝合并没有历史关联的分支相合并。git push 操作自然也会被拒绝
执行过程
远程仓库建立
远程 github 新建好个人博客如 dir.github.io
,并执行 choose a theme → select theme 等操作,来生成 github pages
本地新建个人博客(静态文件仓库)
- npm install -g hexo (已安装了就不需要再次安装)
- 本地 新建
dir.github.io
目录,在该目录下执行hexo init
命令,新建网站
执行cnpm install --save hexo-deployer-git
命令,以便执行hexo deploy
命令向远程仓库推送本地静态博客文件 配置
_config.yml
文件,关联本地 静态文件仓库 与 远程仓库1
2
3
4deploy:
type: git
repo: git@github.com:dir/dir.github.io.git
branch: master这一步与以往的新建个人博客并无二致,如果想要推送自己的源代码文件,继续向下执行命令就好。上面执行好后,接下来可以写文章了
源代码仓库创建
dir.github.io
目录下执行git init
命令- 新建本地分支
git checkout -b hexo
分支,继续执行git add . | git commit -m
等操作,提交本地历史记录。
这样dir.github.io
中的所有文件(源代码文件)已被提交到本地历史记录当中。
接下来只需要 将这个分支推送到远程分支即可 - 执行
git remote add origin url
命令,将本地 源代码仓库 与 远程仓库 建立链接 - 执行
git push -u origin hexo
命令,将本地 源代码文件 推送到远程仓库 - 远程仓库现在 便有两个分支了。将 远程 hexo分支 设置为默认分支。这样其它电脑
git clone
时,下载的便是源代码文件了
总结以上
dir.github.io
目录 —— 博客源代码文件 ——.git
源代码仓库 ——远程hexo 分支
dir.github.io > .deploy_git
目录 —— 博客生成的仓库 ——.git
静态文件仓库 ——远程 master 分支
- 我们所有的命令行操作全部都是在
dir.github.io
根目录下执行的。无论是哪一个仓库。 git push
推送hexo分支源代码;hexo deploy
推送master静态文件
维护
- 新建文章
dir.github.io
目录下hexo new "title"
→hexo g -d
- 推送源代码
git push
多端同步
git clone
远程仓库,执行npm install
安装依赖- 正常的新建文章 推送文章。
hexo g -d
推送文章之后,git push
推送源代码仓库- 其它电脑 新建文章之前,先
git pull
,之后从第二步开始
注意事项
- 下载其它主题文件至 themes 文件夹的时候,注意将主题文件夹中的
.git
仓库删掉。 - 这个涉及到 git 的
submodule
知识,详细的可以看这里 Git submodule实战