Подтвердить что ты не робот

Как заставить GitHub Pages строить?

Каждый репозиторий GitHub может иметь (или быть) Сайт GitHub, который может быть построен с Jekyll. GitHub создает сайт каждый раз, когда вы нажимаете новый коммит.
Есть ли способ принудительно обновить сайт Github Pages без нажатия новой фиксации?

4b9b3361

Ответ 1

От поддержки GitHub, 2014-06-07:

В настоящее время невозможно вручную запустить перестройку, не нажимая фиксацию на соответствующую ветку.


Edit:

Как заметил Энди в комментариях, вы можете нажать пустую фиксацию с помощью команды:

git commit -m 'rebuild pages' --allow-empty
git push origin <branch-name>

Ответ 2

У меня была эта проблема некоторое время, и переход на myapp.github.io master ничего не изменил на myapp.github.io по двум причинам:

1 - Сборка

Независимо от того, сколько раз я пытался перенести свою работу на мастера, сборка не начиналась. Я нашел обходной путь, изменив свой файл в онлайн-редакторе Github (откройте ваш index.html и отредактируйте его на веб-сайте Github, затем подтвердите)

2 - Проблемы с кэшированием

Даже после успешной сборки я по-прежнему вижу ту же самую страницу на myapp.github.io, и перезагрузка с помощью Ctrl + Shift + R не решит эту проблему. Вместо этого, если вы используете Chrome, проверьте свою страницу, перейдите на вкладку " Application ", выберите "Очистить хранилище" в левом меню и нажмите "Очистить данные сайта" в нижней части меню.

Ответ 3

Пустой коммит не работал для меня, но, основываясь на ответе @benett, это сработало для меня:

Откройте Почтальон, создайте новый запрос с этим URL-адресом: https://api.github.com/repos/[user_name]/[repo_name]/pages/builds (замените его своим именем и репо) и выберите метод POST.

Прежде чем запускать его, перейдите на вкладку headers и добавьте новый ключ Accept со значением application/vnd.github.mister-fantastic-preview+json

Теперь вы можете запустить его и снова посетить ваши страницы.

Ответ 5

Если вы хотите быстрое решение сценария, вот оно. Просто выполните следующие задачи только один раз, и запускайте скрипт всякий раз, когда вы хотите перестроить страницу GitHub.

1. Создайте персональный токен доступа для командной строки:

  • Следуйте официальную помощь здесь, чтобы создать личный маркер доступа. По сути, вы должны войти в свою учетную запись GitHub и перейти к: Settings > Developer settings > Personal access tokens > Generate new token.
  • Тик repo.
  • Скопируйте токен.

2. Создайте следующий скрипт:

  • Создайте файл с именем RebuildPage.sh и добавьте строки:

    #!/bin/bash
    curl -u yourname:yourtoken -X POST https://api.github.com/repos/yourname/yourrepo/pages/builds -H "Accept: application/vnd.github.mister-fantastic-preview+json"
    

    Вот,

    • Заменить yourname с Вашим именем пользователя GitHub.
    • Замените ваш yourtoken на ваш скопированный токен личного доступа.
    • Замените yourrepo вашим именем хранилища.

3. Запустите скрипт:

  • Если вы используете Windows 10:

    • Вам необходимо настроить подсистему Windows для Linux, если это еще не сделано. Следуйте этому, чтобы сделать это.
    • Удалите первую строку (#!/bin/bash) из сценария и сохраните сценарий как RebuildPage.bat. (т.е. замените .sh на .bat в имени файла скрипта)
    • Альтернатива вышеуказанному пункту: чтобы получить возможность двойного щелчка для запуска файла .sh:

      • Установите bash.exe в качестве программы по умолчанию для файлов .sh.
      • Откройте regedit.exe и отредактируйте HKEY_CLASSES_ROOT\Applications\bash.exe\shell\open\command. Установите значение (Default):

        "C:\Windows\System32\bash.exe" -c " \"./$(grep -oE '[^\\]+$' <<< '%L')\";"
        
    • Теперь дважды щелкните скрипт, когда вы захотите перестроить свою страницу GitHub. Готово!

  • Если вы используете Linux/Mac, запуск сценария аналогичен запуску других сценариев. Готово!

Дополнительные примечания к решению:

Это решение использует API предварительного просмотра GitHub REST API v3. Вот официальная документация по API.

Ответ 6

Альтернативное решение

Возможно, вы получили электронное письмо от GitHub, в котором сообщалось, что Jekyll не удалось создать ваш сайт, когда вы добавили его на свои gh-pages. Если это так, вы можете попытаться принудительно нажать толчок, чтобы вызвать другую сборку.

Если вы используете выделенную папку для конечного веб-сайта, скажем, public папку, вы можете попытаться перестроить вашу папку и добавить папку к вашим зафиксированным изменениям. После этого вам нужно будет разделить эти файлы на ветку gh-pages и заставить их запускать другую сборку, даже если файлы не изменились вообще. Остальная часть кода ниже просто удаляет коммиты для public папки для удобства и удаляет ее из локальной файловой системы.

Код

git add public
git commit -am ":bug: triggering another jekyll build"
git push origin $(git subtree split --prefix public master):gh-pages --force
git reset HEAD~1
rm -rf public

подсказки

Если есть незафиксированные изменения, которые не являются частью окончательного сайта, вы можете сохранить их с помощью следующей команды.

git stash

Затем выполните приведенную выше команду, чтобы вручную принудительно запустить сборку Jekyll и распаковать их.

git stash pop

Рекомендации

Ответ 7

Даже после того, как я отправил свои изменения в репозиторий GitHub, я не смог увидеть изменения сегодня. Затем я проверил настройки своего репозитория для получения дополнительной информации, там я мог видеть, что все это время сборка терпела неудачу, и по этой причине я не смог увидеть изменения.

enter image description here

Вы также можете увидеть сообщение "У вас проблемы с созданием сайта: невозможно создать страницу. Повторите попытку позже".

Затем я проверял свои последние коммиты и пытался выяснить, что является причиной этой проблемы. В конце я смог решить проблему.

enter image description here

В тегах (,) была дополнительная запятая, и это вызвало эту проблему.

enter image description here

Вы не получите соответствующие сообщения об ошибках, если есть какие-либо проблемы в вашем файле .md. Я рекомендую вам проверить состояние сборки и сравнить изменения, если вы столкнулись с той же проблемой.