无法使用octopress部署到Github Pages

问题描述 投票:17回答:2

我已经使用Octopress在github页面上设置了一个博客。 我创建了我的第一篇文章,并且能够使用rake preview在localhost上查看它。 但是它无法部署到github页面。 对git不熟悉,我很难理解这个问题。

我按照他们的文档运行rake deploy来部署到github页面。

我收到这条消息:

## Deploying branch to Github Pages 
## Pulling any updates from Github Pages 
cd _deploy
You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.

If you often merge with the same branch, you may want to
use something like the following in your configuration file:
    [branch "master"]
    remote = <nickname>
    merge = <remote-ref>

    [remote "<nickname>"]
    url = <url>
    fetch = <refspec>

See git-config(1) for details.
cd -
rm -rf _deploy/blog
rm -rf _deploy/robots.txt
rm -rf _deploy/javascripts
rm -rf _deploy/stylesheets
rm -rf _deploy/sitemap.xml
rm -rf _deploy/favicon.png
rm -rf _deploy/atom.xml
rm -rf _deploy/index.html
rm -rf _deploy/images
rm -rf _deploy/assets

## Copying public to _deploy
cp -r public/. _deploy
cd _deploy

## Committing: Site updated at 2014-01-25 20:13:51 UTC
# On branch master
nothing to commit (working directory clean)

## Pushing generated _deploy website
To [email protected]:slmnm/slmnm.github.io.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:slmnm/slmnm.github.io.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

## Github Pages deploy complete
cd -

这个问题之后 ,我将branch.master.remote设置为origin 。 为了解决非快进的情况,我执行了git push origin master 。 在此之后,我能够将代码推送到github,但不能使用rake deploy部署到github页面。

我要在这里粘贴我的git配置文件,我不知道这是否会有所帮助。

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "octopress"]
    url = git://github.com/imathis/octopress.git
    fetch = +refs/heads/*:refs/remotes/octopress/*
[branch "source"]
    remote = origin
    merge = refs/heads/master
[remote "origin"]
    url = [email protected]:slmnm/slmnm.github.io.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

正如你可能已经猜到的那样,我一个人在做这个,而且没有合作者(呃!博客)。 这是我的回购 。 如果您需要任何其他细节,请告诉我。 我是一个git newb :)谢谢

编辑:我也收到了来自github的电子邮件说:

页面构建失败,出现以下错误:

source/blog/archives/index.html中包含一个文件,该文件是符号链接,或者在_includes目录中不存在。

这发生过一次,虽然我已经尝试过多次部署。

git github octopress github-pages
2个回答
27
投票

好。 我已经解决了这个问题。 所以我自己会回答这个问题。

我遇到的问题是因为我试图从octopress目录修复问题,当时我应该从_deploy目录这样做。

在运行rake deploy ,octopress执行cd _deploy并尝试将更新推送到Github(在我的情况下)。 在那段时间里,我收到的信息是“ You asked me to pull without telling me which branch you ...

在此之后,在_deploy目录中,我跑了

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

git pull

这解决了两个错误(上面描述的错误和非快速前向错误)。 现在将其推送到远程,(或再次运行rake deploy )。

这对我有用。 如果您有更好的解决方案,我愿意改变正确的答案。


9
投票

当我们有多个分支并且git无法识别要部署的分支时,会发生此问题。

在Rakefile中,您可以检查deploy_branch的值

deploy_branch = "master"  # For me its master

然后,在第250行的某处,有一个名为:push的任务在rake deploy期间被调用

在此:push任务

cd "#{deploy_dir}" do ,git pull完成了

Bundler.with_clean_env { system "git pull" }

在这个命令中,git无法识别要部署的分支,因此我们只需将上面的行更改为

Bundler.with_clean_env { system "git pull origin #{deploy_branch}" }
© www.soinside.com 2019 - 2024. All rights reserved.