Зачем ставить _site-каталог сайта Jekyll в .gitignore?

Документация Jekyll сообщает мне, что _site-каталог сайта Jekyll содержит скомпилированную версию сайта, который я создал после запуска

Jekyll build

Несколько статей рекомендуют, что я включаю _site-directory в свой .gitignore файл, потому что "он просто содержит скомпилированную версию моего сайта". (что рекомендуют некоторые статьи. Итак, я не уверен, не понимаю ли я некоторую концепцию Jekyll или некоторую концепцию git. Если каталог _site содержит скомпилированную версию сайта, не должно ли это быть на сервере, которое предоставляет последний веб-сайт? Я понимаю, почему вы добавляете исходный код в github и что с ним делать, но в случае github-страниц github - это не система управления версиями, а система файлового хостинга и файловая система хостинга должны содержать скомпилированные версии моей работы, чтобы предоставить ее через MyUsername.github.io пользователям, не так ли? Мой вопрос: должен ли он быть только _site-directory моего Jekyll-сайта, который я развертываю в github, потому что это должен быть скомпилированный исходный код, который github предоставляет пользователям? Итак, не следует ли мне помещать что-либо еще в .gitignore -file EXCEPT _site-directory?

Если я понял, что все это неправильно: какой смысл компилировать мой сайт через

Jekyll build

если я не скомпилированный исходный код для чего-либо?

Ответы

Ответ 1

Два решения:

Вы не используете плагины Jekyll (или только те поддерживаемые страницами github)

Вы создаете свой сайт только в том случае, если вам нужно его локально проверить (jekyll build или jekyll serve). Сгенерированный код (в _site) не будет версироваться, поскольку страницы github будут генерировать страницы из источников.

  • Поместите _site на .gitignore
  • Нажимайте источники на страницы github

Вы используете плагины Jekyll

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

  • Jekyll строить локально
  • Поместите _site на .gitignore
  • передать свои источники в одну ветку
  • передать ваш _site в другой ветке

Подробнее см. этот пост.

Ответ 2

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

  • source code вашего сайта, здесь вы вызываете Jekyll build
  • скомпилированный result, это тот, где вы помещаете содержимое в каталог _site

Тогда имеет смысл игнорировать _site в случае 1. по той же причине, что вы обычно игнорируете результаты компиляции: они не предназначены для отслеживания, потому что они могут меняться между каждой компиляцией без изменения источника, так что вы бы для фиксации после каждой сборки, хотя ничего (видимое) не изменилось.

Для репозитория 2. вы, конечно же, должны обновить его содержимым _site из репозитория 1 после сборки.

Сказав, что вы можете, конечно, объединить 1. и 2. в один репозиторий, используя master для содержимого _site и другой ветки, например. source для проекта с файлами сборки Jekyll, здесь игнорируя _site, а затем обновляя ветвь master с содержимым ее после изменений.

Ответ 3

Я считаю, что вы можете смотреть на вещи не так, имеет смысл игнорировать _site, так как каждый раз, когда вы jekyll build, ваш _site взорвался, все там стирается и записывается снова.

Итак, по моему мнению, то, что вы хотели бы нажать на github, - это рабочий каталог, поскольку он там, где вы работаете, и все ваши изменения версируются... с плюсом github, выполняющим компиляцию и автоматическое создание сайта.

Как я уже сказал, я обычно оставляю _site из моего gitignore, так как я развертываю его на другой хостинг, и моя среда развертывания захватывает репозиторий github и развертывается из какой-то конкретной ветки. Мне нужно, чтобы _site был там.

Ответ 4

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

если вы думаете, что git нажимаете ваш сайт jekyll на ваш репозиторий github в качестве страницы проекта (gh-pages), папка _site снова не выполняет никаких задач, поскольку установка jekyll в github будет автоматически генерировать _site для вас загрузка файлов (git push).

папка _site полезна только для локального предварительного просмотра вашего сайта jekyll (обычно для локального хоста: 4000 по умолчанию).