git branch: gh-pages - PullRequest
       70

git branch: gh-pages

56 голосов
/ 20 января 2011

У меня есть репо на GitHub. Недавно я открыл для себя страницы GitHub и хочу их использовать.
Я хотел бы создать эту новую ветку и затем, когда мне нужно, либо зафиксировать в master ветке, либо в gh-pages ветке.

Как я могу это сделать? Нужно ли создавать еще одну папку внутри моего репо?

Ответы [ 8 ]

35 голосов
/ 23 января 2011

Более поздние версии git имеют альтернативу методу git symbolic-ref, который объяснил Чандру. Это позволяет избежать использования команд более низкого уровня.

git checkout --orphan gh-pages
git rm -rf .
27 голосов
/ 14 февраля 2011

Вы можете найти этот урок полезным:

Настройка GitHub Pages "gh-pages" и ветвь "master" как подпапки родительской папки проекта ("grandmaster") .

Мне кажется, что этот подход проще, чем делать git checkout gh-pages каждый раз, когда вы хотите редактировать содержимое gh-страниц. Дайте мне знать, что вы думаете ^ _ ^

Редактировать: Я обновил ссылку на учебник - спасибо @Cawas. Старый обучающий (не рекомендуется) был https://gist.github.com/825950

9 голосов
/ 20 января 2011

На вашем местном клоне,

git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index 
git clean -fdx

Тогда git checkout gh-pages и напишите свои страницы. git push origin gh-pages когда вы будете готовы опубликовать страницы.

2 голосов
/ 28 октября 2017

Опубликуйте статический сайт следующим образом:

git subtree push --prefix www origin gh-pages

Где www - корневой каталог doc, в котором находятся ваши статические файлы. Ваш статический сайт теперь доступен по адресу: https://[user_name].github.io/[repo_name]/

1 голос
/ 20 июля 2017

Есть еще одно решение вашей проблемы: забудьте о gh-pages и ветвлении; Поместите ваши статические файлы, которые должны обслуживаться, в каталог /docs, а затем перейдите в настройки вашего проекта и скажите github, что он будет обслуживать содержимое /docs.

Для получения дополнительной информации посмотрите это

1 голос
/ 27 февраля 2013

Создание страниц проекта вручную

Добавить новый набор страниц для проекта вручную просто процесс, если вы привыкли использовать командную строку git.

https://help.github.com/articles/creating-project-pages-manually

0 голосов
/ 23 ноября 2015

Типичным способом является переключение ветвей: git checkout master, если вы хотите работать с мастером, и git checkout gh-pages, если вы хотите работать с gh-pages.

.

Начиная с git 2.5, вы можете извлекать обе ветви одновременно (в разных каталогах). См. https://github.com/blog/2042-git-2-5-including-multiple-worktrees-and-triangular-workflows. Настройка через git worktree add -b gh-pages ../gh-pages origin/gh-pages.

Бонус: если содержимое подкаталога вашей master кассы является содержимым gh-pages, используйте сценарий, предоставленный на https://github.com/X1011/git-directory-deploy.

0 голосов
/ 12 ноября 2015

Ваши gh-страницы и главная ветвь имеют ТОЧНО одинаковую структуру папок? Если это так, почему вы хотите иметь две ветви? просто поддерживай одну ветку gh-pages! но если по какой-либо причине вы хотите, чтобы обе ветви были постоянно синхронизированы, то лучше всего использовать git rebase. Смотрите здесь:
http://lea.verou.me/2011/10/easily-keep-gh-pages-in-sync-with-master/

Вы также можете выбрать только те файлы, которые вам нужны, из мастера и перенести их на gh-страницы, используя специальный вариант использования git checkout. Смотрите здесь:
http://oli.jp/2011/github-pages-workflow/#gh-pages-workflow
http://nicolasgallagher.com/git-checkout-specific-files-from-another-branch/

Мне пришлось столкнуться с той же проблемой, с которой я столкнулся, и обнаружил, что gh-страницы обычно имеют другую кодовую базу, чем master. Другими словами, gh-страницы должны включать только содержимое папки dist / build / publish вашего проекта, тогда как master будет включать ваши файлы конфигурации, незавершенные скрипты и стили и т. Д.

Я бы предложил создать gh-страницы как ветку --orphan и включать в нее только готовый к публикации материал. Вам придется клонировать своего мастера в другой локальный каталог, использовать git checkout --orphan gh-pages для создания gh-страниц, а затем удалить все ненужные файлы, используя git rm -rf .. Оттуда вы можете перейти и перейти на gh-страницы после добавления файлов только для публикации. Обратитесь к документации Github для получения дополнительной информации:
https://help.github.com/articles/creating-project-pages-manually/

Удачи

...