如何正确更新我的Octopress博客

时间:2013-03-12 01:05:57

标签: github push octopress

我陷入困境:我已经完成了rake deploy并且我的Octopress博客工作正常。文档说我必须再做3个步骤:

git add .
git commit -m 'message'
git push origin source

好的,前两个工作很棒,但第三个让我抓狂,因为GitHub上的源代码没有更新。相反,它创建了另一个名为source的分支,其中包含所有Octopress源代码。为什么?如果每次我必须更新源代码rake deploy,事情就会好起来的。但是运行此命令需要很多时间,因为我有300多篇博文和图片。

我该怎么办?

2 个答案:

答案 0 :(得分:2)

您可以尝试按照文章“Octopress: Setting up a Blog and Contributing to an Existing One”:

  

那么,如何开始为现有的Octopress博客(或者您自己的新计算机)做出贡献?我们想要的是与上面相同的设置,但不是从头开始。

git clone https://github.com/username/username.github.io.git -b source
cd username.github.com
git clone https://github.com/username/username.github.io.git -b master _deploy
cd ..

OP ThXou adds

  

我了解如果我想上传我的代码,我每次都必须rake deploy


请注意,自April 5th 2013起,所有username.github.com现在都是 username.github.io

答案 1 :(得分:2)

这三行所做的是将您对Octopress博客(Jekyll项目)的所做的所有更改上传到GitHub存储库的source分支(请注意这将包括根目录中的所有,而不仅仅是在无关的source文件夹中找到的少数文件。)

另一方面,rake deploy所做的是生成博客,并仅将结果(所有静态HTML页面)上传到GitHub的gh-pages分支repository(此结果取自_public目录)。

从技术上讲,你没有 将源代码上传到GitHub,但是,如果您的硬盘发生故障,或者由于任何原因您的信息消失,您必须重建它是一个很好的帮助从头开始的源代码(我很确定没有脚本可以使用HTML页面并将其“反编译”回_layouts_includes_posts和样式。< / p>

由于我通常会在结果的同时上传来源,因此我创建了一个Bash脚本来帮助解决此问题(正如您所说,需要一分钟)为了这一切运行,但我只是step aside and do something else in the meantime):

#!/bin/bash

# Load RVM into a shell session *as a function*
# NOTE: Not necessary if you already have a line similar to this in '~/.bash_profile'
[[ -s "/home/andreas/.rvm/scripts/rvm" ]] && source "/home/andreas/.rvm/scripts/rvm"  

# Create static site
rake generate

# Publish site to GitHub
rake deploy

# Fetch the optional commit message (as an argument)
if [[ -z "$1" ]]; then 
    message="Updated source `date`"
else
    message="$1"; 
fi

# Push the changes to 'source' to GitHub
echo ""
echo "## Commit source to GitHub"
git add .
git commit -a -m "$message"
git push origin source

要使用它,请将其另存为deploy.sh之类的内容,然后执行它。它需要一个可选参数,您可以在其中指定提交消息:

$ deploy.sh "Add blog post 'Why Pandas are going to kill us all'"

如果没有提供提交消息,它会自动创建Updated source Thu May 8 23:50:14 CDT 2014行的提交消息。