4

我有一个难题:我已经完成了rake deploy,我的 Octopress 博客运行良好。文档说我必须再做 3 个步骤:

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

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

我能做些什么?

4

2 回答 2

2

您可以尝试关注文章“ Octopress:建立博客并为现有博客做贡献”:

那么,如何开始为现有的 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 补充

我明白,如果我想上传我的代码,我必须rake deploy每次都做。


请注意,自2013 年4 月 5 日起,所有username.github.com现在都是username.github.io.

于 2013-03-12T07:32:01.340 回答
2

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

另一方面,rake deploy生成博客,只将结果(所有静态 HTML 页面)上传到gh-pagesGitHub 存储库的分支(此结果取自_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.

于 2014-05-09T04:57:06.420 回答