Каждый репозиторий GitHub может иметь (или быть) Сайт GitHub, который может быть построен с Jekyll. GitHub создает сайт каждый раз, когда вы нажимаете новый коммит.
Есть ли способ принудительно обновить сайт Github Pages без нажатия новой фиксации?
Как заставить GitHub Pages строить?
Ответ 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
Теперь вы можете запустить его и снова посетить ваши страницы.
Ответ 4
Это выполнимо начиная с v3 API GitHub, хотя в настоящее время он находится в предварительном просмотре https://developer.github.com/v3/repos/pages/#request-a-page-build
POST /repos/:owner/:repo/pages/builds
Ответ 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, я не смог увидеть изменения сегодня. Затем я проверил настройки своего репозитория для получения дополнительной информации, там я мог видеть, что все это время сборка терпела неудачу, и по этой причине я не смог увидеть изменения.
Вы также можете увидеть сообщение "У вас проблемы с созданием сайта: невозможно создать страницу. Повторите попытку позже".
Затем я проверял свои последние коммиты и пытался выяснить, что является причиной этой проблемы. В конце я смог решить проблему.
В тегах (,) была дополнительная запятая, и это вызвало эту проблему.
Вы не получите соответствующие сообщения об ошибках, если есть какие-либо проблемы в вашем файле .md. Я рекомендую вам проверить состояние сборки и сравнить изменения, если вы столкнулись с той же проблемой.