web-dev-qa-db-fra.com

Pourquoi mettre le _site-directory d'un site Jekyll dans .gitignore?

La documentation de Jekyll me dit que le répertoire _site-d'un site Jekyll contient la version compilée du site que j'ai créé après l'exécution

Jekyll build

Plusieurs articles recommandent que j'inclus le répertoire _site dans mon fichier .gitignore car "il contient juste la version compilée de mon site". (c'est ce que certains articles recommandent. Donc, je ne suis pas sûr de ne pas comprendre un concept de Jekyll ou un concept de Git.

Si le répertoire _site-contient la version compilée d'un site, cela ne devrait-il pas être la chose qui se trouve sur le serveur qui fournit le site Web final? Je comprends pourquoi vous mettez du code source sur github et quoi en faire, mais dans le cas des pages github, Github n'est pas un système de version mais un système d'hébergement de fichiers et le système d'hébergement de fichiers devrait héberger des versions compilées de mon travail pour fournir via MyUsername.github.io aux utilisateurs, non?

Ma question est la suivante: ne devrait-il pas être uniquement le répertoire _site-de mon site Jekyll que je déploie sur Github parce que ce devrait être le code source compilé que github fournit aux utilisateurs? Alors, ne devrais-je pas mettre autre chose dans le fichier .gitignore SAUF le répertoire _site?

Si je me trompe: à quoi ça sert de compiler mon site via

Jekyll build

si je n'utilise le code source compilé pour rien?

29
Otterfinger

Deux solutions:

Vous n'utilisez pas les plugins Jekyll (ou seulement ceux pris en charge par les pages github )

Vous ne créez votre site que si vous devez le tester localement (jekyll build ou jekyll serve). Le code généré (dans _site) ne sera pas versionné car les pages github généreront des pages à partir des sources.

  • Mettez _site à .gitignore
  • Poussez vos sources vers les pages github

Vous utilisez les plugins Jekyll

Dans ce cas, vous devez créer localement car les pages Github ne peuvent pas faire le travail avec les plugins.

  • Jekyll construit localement
  • Mettez _site à .gitignore
  • engager vos sources dans une seule branche
  • engager votre _site dans une autre branche

Voir ce post pour plus d'explications.

20
David Jacquel

Je pense que le point où vous êtes confus est que la plupart des tutoriels parlent d'au moins deux référentiels différents.

  1. les source code de votre site, c'est ici que vous appelez Jekyll build
  2. le result compilé, c'est celui où vous mettez le contents du _site répertoire

Ensuite, il est logique d'ignorer _site dans le cas 1. pour la même raison que vous ignorez normalement les résultats de la compilation: ils ne sont pas destinés à être suivis car ils peuvent changer entre chaque compilation sans changer la source, vous devrez donc valider après chaque build bien que rien (visible) a changé.

Pour le référentiel 2. vous devez bien sûr le mettre à jour avec le contenu de _site du référentiel 1 après votre build.

Cela dit, vous pouvez bien sûr combiner 1. et 2. dans un référentiel unique en utilisant master pour le contenu de _site et une autre branche, par exemple source pour le projet avec les fichiers de construction Jekyll, ici en ignorant _site puis en mettant à jour la branche master avec son contenu après les modifications.

3
Markus1189

le dossier _site est effacé et tous les fichiers à l'intérieur sont régénérés à chaque "build jekyll". le suivi d'un fichier à supprimer ne semble avoir aucune utilité.

si vous pensez à git Poussez votre site jekyll sur votre dépôt github en tant que page de projet (gh-pages), le dossier _site ne sert à nouveau à rien car l'installation jekyll sur github générera automatiquement le _site pour vous lors du téléchargement de vos fichiers (git Pousser).

le dossier _site n'est utile que pour l'aperçu local de votre site jekyll (généralement disponible sur localhost: 4000 par défaut).

0
cha.j

Je pense que vous regardez les choses dans le mauvais sens, il est logique d'ignorer _site puisque chaque fois que vous jekyll build votre _site est détruit, tout y est effacé et réécrit.

Donc, à mon avis, ce que vous aimeriez pousser vers github est le répertoire de travail car il est là où vous travaillez et toutes vos modifications sont en cours de version ... avec le plus de github pour la compilation et la construction automatique du site.

Cela étant dit, je garde généralement _site hors de mon gitignore car je déploie vers un autre service d'hébergement et mon infrastructure de déploiement saisit le référentiel github et se déploie à partir d'une branche particulière dont j'ai besoin que _site soit là.

0
Bunni Gek