Не удалось развернуть на Github Pages с помощью Octopress

Я настроил блог на страницах github с помощью Octopress. Я создал свой первый пост и могу просмотреть его на localhost, используя rake preview. Однако его не удается развернуть на страницах 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, но не смог развернуть его на страницах github с помощью rake deploy.

Я собираюсь вставить сюда свой конфигурационный файл 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

Как вы уже догадались, я делаю это один, и у меня нет соавторов (черт возьми! Блог). Это мое репо. Пожалуйста, дайте мне знать, если вам понадобятся другие подробности. Я мерзавец новичок :) Спасибо

Изменить: я также получил электронное письмо от github, в котором говорилось следующее:

Построение страницы завершилось неудачно из-за следующей ошибки:

В source/blog/archives/index.html был включен файл, который является символической ссылкой или не существует в вашем _includes каталоге.

Это случилось однажды, хотя я пробовал развернуть несколько раз.


person sutro    schedule 25.01.2014    source источник


Ответы (2)


Ok. Я исправил проблему. Так что я сам отвечу на этот вопрос.

Проблема, с которой я столкнулся, заключается в том, что я пытался исправить проблему из каталога 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).

Это сработало для меня. Если у вас есть лучшее решение, я готов изменить правильный ответ.

person sutro    schedule 27.01.2014
comment
у меня не сработало: / Мое решение заключалось в том, чтобы сначала очень тщательно создать резервную копию моего репозитория git. А затем, во-вторых, удалите главную ветку на github. Тогда я не смогу протолкнуть никаких проблем без конфликтов (так как это новая ветка). - person John Hinnegan; 14.10.2014

Эта проблема возникает, когда у нас более 1 ветки, и 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}" }
person Amit Thawait    schedule 29.07.2014
comment
Это помогло. Я облажался и перед запуском rake deploy нажал на ветку «исходный код». Я пробовал 10 разных вещей, прежде чем это решило мою проблему. - person K.C. Barrett; 31.12.2014
comment
Решил мою проблему! : D Большое спасибо. - person Castiblanco; 06.01.2015