Зачем ставить _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 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 по умолчанию).