文章目录
  1. 1. Octopress目录结构
  2. 2. 在本地重建Octopress仓库
    1. 2.1. clone source分支
    2. 2.2. clone master分支
  3. 3. Tips
    1. 3.1. 及时提交本地修改
    2. 3.2. 修改前先更新到最新版本

前阵子在公司电脑上配置好了Octopress博客,但是想在家里的Mac上使用,开始以为简单的将仓库clone就可以了,不幸的是我想的太简单。

Octopress目录结构

Octopress的仓库目录下有两个branch,sourcemaster

  1. source 分支下保存Octopress的源代码,我们需要用他们生成博客,该分支保存在Octopress本地仓库的根目录下;

  2. master 分支下保存生成的博客内容,该分支在Octopress本地仓库的根目录下一个叫 _deploy 的文件夹中。该文件夹是以下划线开头的,会在执行git push origin source命令时被忽略,这也是为什么一个目录中能同时存在两个不同分支的文件夹的原因。

在本地重建Octopress仓库

clone source分支

1
git clone -b source [email protected]:username/username.github.io.git blog-site

username 替换成你自己github用户名。 clone的地址不能是 http 而必须得是 ssh 的。

clone master分支

1
2
cd blog-site
git clone [email protected]:username/username.github.io.git _deploy

Tips

及时提交本地修改

在每处配置了Octopress的地方,做了任何修改都要提交,否则另一个地方做了修改,本地更新的时候肯定会冲突。

每次在本地做完修改以后,都要及时提交,分别执行以下命令:

1
2
rake generate
rake deploy # update the remote master branch

  • generate - 生成最新的blog网站,并存放到Octopress根目录下的public/目录下;
  • deploy - 用generate命令生成在public/目录下的内容覆盖_deploy/目录下内容;并将_deploy/目录下的修改add 、 commit到git,并push到git的master分支。

然后得把source分支中做的修改提交的git仓库中,执行以下命令:

1
2
3
git add .
git commit -am "Some comment here."
git push origin source # update the remote source branch

执行完这两步后,稍过一会就能看到自己blog中的更新啦!

修改前先更新到最新版本

为了以防万一,在本地做任何修改前都要先做更新,可以执行以下命令分别更新sourcemaster分支:

1
2
3
4
cd blog-site
git pull origin source # update the local source branch
cd ./_deploy
git pull origin master # update the local master branch