Git ветвь: gh-pages
У меня есть репо на GitHub. Недавно я обнаружил страницы GitHub, и я хочу их использовать.
Я хотел бы создать эту новую ветку, а затем, когда мне нужно, либо зафиксировать на ветке master
, либо в ветке gh-pages
.
Как я могу это сделать? Мне нужно создать другую папку внутри моего репо?
Ответы
Ответ 1
Вы можете найти этот учебник полезным:
Настройка GitHub Pages "gh-pages" ветвь ветки и "master" как вложенные папки родительской папки проекта ( "гроссмейстер" ).
Для меня этот подход кажется более простым, чем при использовании git checkout gh-pages
каждый раз, когда вы хотите редактировать содержимое gh-страниц. Дайте мне знать, что вы думаете ^ _ ^
Изменить: Я обновил ссылку на учебник - спасибо @Cawas. Старый tuotial (не рекомендуется) был https://gist.github.com/825950
Ответ 2
В более поздних версиях git есть альтернатива методу git symbolic-ref
, который объяснил Чандру. Это позволяет избежать необходимости использовать команды нижнего уровня.
git checkout --orphan gh-pages
git rm -rf .
Ответ 3
В вашем локальном клоне,
git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index
git clean -fdx
Затем git checkout gh-pages
и напишите ваши страницы. git push origin gh-pages
, когда вы готовы опубликовать страницы.
Ответ 4
Создание страниц проекта вручную
Добавление нового набора страниц для проекта вручную - это простой если вы привыкли использовать командную строку git.
https://help.github.com/articles/creating-project-pages-manually
Ответ 5
Есть еще одно решение вашей проблемы: Забудьте о gh-pages
и ветвлении; Поместите ваши статические файлы, которые, как предполагается, будут обслуживаться внутри каталога /docs
, а затем перейдите к настройкам вашего проекта и сообщите github для обслуживания контента /docs
.
Для получения дополнительной информации см. this
Ответ 6
Публиковать статический сайт следующим образом:
git subtree push --prefix www origin gh-pages
Где www
- каталог корня doc, в котором находятся ваши статические файлы.
Ваш статический сайт теперь доступен:
https://[user_name].github.io/[repo_name]/
Ответ 7
Типичным способом является переход ветвей: 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
, используйте script, предоставленный в https://github.com/X1011/git-directory-deploy.
Ответ 8
Являются ли ваши 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 вашего проекта, тогда как мастер будет включать ваши файлы конфигурации, неустановленные сценарии и стили и т.д.
Мое предложение состояло в том, чтобы создать gh-страницы как ветку --orphan
и включить в нее только готовый к публикации материал. Вы должны клонировать от своего хозяина в другом локальном каталоге, используйте git checkout --orphan gh-pages
для создания gh-страниц, а затем удалите все ненужные файлы с помощью git rm -rf .
. Оттуда вы можете продолжить и нажать на gh-страницы после добавления ваших файлов только для публикации.
Подробнее см. В документах Github:
https://help.github.com/articles/creating-project-pages-manually/
Удачи.