这三行所做的是将您对Octopress 博客(Jekyll 项目)的源代码source
所做的所有更改上传到您的 GitHub 存储库的分支(请注意,这将包括根目录中的所有内容,而不仅仅是找到的少数文件在不相关的source
文件夹中)。
另一方面,rake deploy
生成博客,只将结果(所有静态 HTML 页面)上传到gh-pages
GitHub 存储库的分支(此结果取自_public
目录)。
从技术上讲,您不必将源代码上传到 GitHub,但是,如果您的硬盘驱动器出现故障,或者由于任何原因您的信息消失了,您必须从头开始重建源代码(我很漂亮确保没有脚本可以获取 HTML 页面并将其“反编译”回_layouts
、_includes
、_posts
和样式)。
由于我通常在上传结果的同时上传源代码,因此我创建了一个 Bash 脚本来协助完成此操作(正如您所说,这需要一分钟才能运行,但我只是靠边并在同时):
#!/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
.