Как мне направить каталог jekyll _site на ветку gh-pages и оставить источник в master?

У меня есть базовый сайт jekyll, состоящий из страниц (не сообщений), но, поскольку я хотел сортировать страницы, когда я их перечислил, мне пришлось использовать Jekyll-Sort плагин (некоторые странные страницы сортировки не встроены в jekyll).

Поскольку я использую плагин, я не могу использовать GitHub auto jekylling. Поэтому я хотел бы нажать исходный код проекта на ветку master и только каталог _site на ветку gh-pages.

Я не могу понять, как это сделать. Я попытался добавить репозиторий git в каталог _site, чтобы нажать его на gh-pages, но каждый раз, когда я запускаю jekyll, он удаляет весь каталог и меня потеряйте папку .git.

Любые предложения? Или способ изначально сортировать?

Ответ 1

Менее болезненное решение:

  • Проверьте свою ветку, где находится ваш источник сборки (возможно, src или master)
  • (Необязательно: добавьте _site к вашему .gitconfig, поэтому он будет проигнорирован, если он еще не был выполнен)
  • Удалить все содержимое каталога _site:

    $ rm -r _site/*

  • Откройте свою репо gh-pages в папку _site:

    $ git clone -b gh-pages `git config remote.origin.url` _site

Заключительные шаги: просто создайте jekyll build, сделайте фиксацию и нажмите:

$ jekyll build,

cd в _site:

$ cd _site,

укажите все файлы для фиксации:

$ git add -A,

передать их:

git commit -am 'Yeah. Built from subdir'

и нажмите свой сайт на GitHub-Pages:

git push.

Ответ 2

Я сделал это некоторое время со своей оболочкой script.

Решение 1.

Создайте .gitignore, который исключает папку _site/. Затем пусть ваша оболочка script проверяет, находитесь ли вы на хозяине, если это так, добавьте все измененные файлы и скопируйте их. Затем переместите папку _site/во временную папку. Перейдите в ветвь gh-pages и скопируйте временную папку. Добавить все и совершить. Нажмите на ветвь master и gh-pages.

Решение 2. Скопируйте содержимое _site/folder в другое репо, которое является точным клоном репо, с которым вы работаете, но проверили на ветке gh-pages. Затем просто нажмите ведущую ветку из исходного репо и ветки gh-страниц из другого репо