我陷入困境:我已经完成了rake deploy
并且我的Octopress博客工作正常。文档说我必须再做3个步骤:
git add .
git commit -m 'message'
git push origin source
好的,前两个工作很棒,但第三个让我抓狂,因为GitHub上的源代码没有更新。相反,它创建了另一个名为source
的分支,其中包含所有Octopress源代码。为什么?如果每次我必须更新源代码rake deploy
,事情就会好起来的。但是运行此命令需要很多时间,因为我有300多篇博文和图片。
我该怎么办?
答案 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 ..
我了解如果我想上传我的代码,我每次都必须
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
行的提交消息。