Невозможно изменить исходную ветку на страницах GitHub

#github #github-pages

#github #github-страницы

Вопрос:

Я создал простой веб-сайт для страниц GitHub. Источник сайта находится в ветке «master», а созданный веб-сайт (который я хочу опубликовать) находится в ветке «gh-pages».

Ветки

Я ожидал, что смогу изменить источник сайта в настройках. Однако параметр не отображается серым цветом? Я не могу ее изменить (см. Скриншот ниже). Что я делаю не так? Как мне переключиться на ветку «gh-pages»?

введите описание изображения здесь

Комментарии:

1. Вы нашли какое-либо решение этой проблемы?

2. Текущий способ слишком ограничен. Например, я только что изменил свою основную ветку с master на v1 , но документ может быть сгенерирован только из master ветки, даже если ветка не существует. Я бы хотел, чтобы это позволило создать документ сайта для каждой ветки. Это было бы здорово для документирования версий и возможности предварительного просмотра новых выпусков, которых еще нет в основной ветке.

Ответ №1:

Личные или организационные сайты создаются из master . gh-pages ветка используется для создания сайтов для проектов.

Насколько я вижу, вы используете https://user-name.github.io / url, это личный адрес, поэтому master по умолчанию используется branch.

Смотрите страницу документации

Если ваш сайт является страницей пользователя или организации, у которой есть репозиторий с именем <username>.github.io или <orgname>.github.io , вы не можете публиковать исходные файлы вашего сайта из разных мест. Страницы пользователей и организаций с таким именем репозитория публикуются только из главной ветки.

Итак, ответ отрицательный, вы не можете его изменить. Вам придется настроить свой рабочий процесс и продолжить разработку в другой ветке (назовем ее development так) и объединить master , когда вы будете готовы к публикации.

UPD:На дворе 2020 год, поэтому с 31 июля страницы GitHub позволяют настроить любую ветку на роль старой master

Селектор ветвей сборки страниц GitHub

Комментарии:

1. Спасибо @Anton за подробности. Я надеялся, что смогу иметь исходный код сайта под master и сгенерированный сайт под gh-pages. Похоже, я неправильно понял, как это работает.

2. кто-нибудь нашел способ обойти это?

3. что делать, если я хочу выполнить развертывание из корневой папки / docs? где статические файлы создаются для vue.js проект

4. Здесь, начиная с 2020 года, моя проблема заключалась в том, что я создал репозиторий с таким именем «<имя пользователя>.github.io «, а настройки github заставляли меня оставаться только на главном сервере. Я пошел и изменил имя своего репозитория на то, чего не было «github.io » в конце концов, и тогда я смог переключиться. Единственное, что теперь, это то, что содержимое переместилось на https://<имя пользователя>.github.io /<новое имя для репозитория>/ .

Ответ №2:

FWIW, это настройка, которую я использовал для публикации личной страницы (т. Е. https://user-name.github.io ) С использованием Next.js и gh-страницы:

  1. Создайте другую ветку по умолчанию в вашем репозитории для работы (например develop )
  2. Создайте статический экспорт вашего сайта: next build amp;amp; next export
  3. Поместите .nojekyll файл маркера в каталог экспорта: touch out/.nojekyll
  4. Загрузите статический экспорт в главную ветку: gh-pages -t -b master -d out

Вы можете объединить эти команды, package.json чтобы получить удобную yarn deploy команду:

 scripts: {
  ...
  "build": "next build",
  "export": "yarn run build amp;amp; next export",
  "deploy": "yarn export amp;amp; touch out/.nojekyll amp;amp; gh-pages -t -b master -d out"
  ...
  

Ответ №3:

Хорошо, поэтому, если вы используете angular-cli-ghpages его, он по умолчанию создаст новую ветку gh-pages и опубликует ее.

Теперь для начала, как и я, если вы используете https://user-name.github.io / и вы хотите, чтобы ваше приложение было опубликовано из главной ветки вашего user-name.github.io приложения, вы можете выполнить следующие действия.

  1. Создайте готовую к производству сборку, используя

     ng build --prod --base-href "/user-name.github.io/"
      
  2. Развертывание на главном angular-cli-ghpages сервере с использованием

     angular-cli-ghpages --branch=master
      

Надеюсь, это поможет.