github - una - ¿Por qué poner el directorio_site de un sitio Jekyll en.gitignore?
ignorar cambios git (4)
Creo que el punto en el que estás confundido es que la mayoría de los tutoriales hablan de al menos dos repositorios diferentes.
- El
source code
de tu sitio, aquí es donde llamas aJekyll build
- El
result
compilado, este es el lugar donde se colocan los contenidos del directorio_site
Entonces tiene sentido ignorar _site
en el caso 1. por la misma razón por la que normalmente ignora los resultados de la compilación: no están diseñados para ser rastreados porque podrían cambiar entre cada compilación sin cambiar la fuente, por lo que tendría que confirmar después de cada compilación Aunque nada (visible) ha cambiado.
Para el repositorio 2., por supuesto, debe actualizarlo con los contenidos de _site
desde el repositorio 1 después de su compilación.
Dicho esto, por supuesto, puede combinar 1. y 2. en un único repositorio utilizando el master
para los contenidos de _site
y otra rama, por ejemplo, la source
del proyecto con los archivos de compilación de Jekyll
, aquí ignorando _site
y luego actualizando la rama master
con el Contenido del mismo después de los cambios.
La documentación de Jekyll me dice que el directorio _site de un sitio Jekyll contiene la versión compilada del sitio que he creado después de ejecutar
Jekyll build
Varios artículos recomiendan que incluya el directorio _site en mi archivo .gitignore porque "solo contiene la versión compilada de mi sitio". (Eso es lo que recomiendan algunos artículos. Entonces, no estoy seguro si no entiendo algún concepto de Jekyll o algún concepto de Git.
Si el directorio _site contiene la versión compilada de un sitio, ¿no debería ser eso lo que está en el servidor que proporciona el sitio web final? Entiendo por qué pones el código fuente en github y qué hacer con él, pero en el caso de las páginas de github, Github no es un sistema de versiones, sino un sistema de alojamiento de archivos y el sistema de alojamiento de archivos debe albergar versiones compiladas de mi trabajo. Es a través de MyUsername.github.io para los usuarios, ¿verdad?
Mi pregunta es: ¿no debería ser solo el directorio _site de mi sitio web Jekyll el que implemento en Github porque ese debería ser el código fuente compilado que github proporciona a los usuarios? Entonces, ¿no debería poner algo más en el archivo .gitignore EXCEPTO el directorio _site?
Si entendí todo esto mal: ¿para qué compilar mi sitio web a través de
Jekyll build
¿Si no uso el código fuente compilado para nada?
Creo que podrías estar mirando las cosas de manera equivocada. Tiene sentido ignorar _site, ya que cada vez que jekyll build
jekyll, tu _site se destruye, todo se borra y se vuelve a escribir.
Así que, en mi opinión, lo que le gustaría impulsar a github es el directorio de trabajo, ya que es allí donde trabaja y todos sus cambios se están versionando ... con la ventaja de que github hace la compilación y crea automáticamente el sitio.
Dicho esto, generalmente mantengo _site fuera de mi gitignore ya que implemento en otro servicio de alojamiento y mi marco de implementación toma el repositorio de github y se despliega desde una rama en particular. Necesito que _site esté allí.
Dos soluciones:
No usa los complementos de Jekyll (o solo los que son compatibles con las páginas de github )
Usted construye su sitio solo si necesita probarlo localmente ( jekyll build
o jekyll serve
). El código generado (en _site
) no se versionará, ya que las páginas github generarán páginas a partir de las fuentes.
- Poner _site a .gitignore
- Empuje sus fuentes a las páginas de github
Usas plugins de Jekyll
En este caso, necesita compilar localmente porque las páginas Github no pueden hacer el trabajo con complementos.
- Jekyll construir localmente
- Poner _site a .gitignore
- cometa sus fuentes en una rama
- cometer su _site en otra rama
Vea este post para más explicaciones.
la carpeta _site se borra y todos los archivos del interior se vuelven a generar en cada "compilación jekyll". El seguimiento de un archivo que se va a eliminar parece no servir para propósitos útiles.
si está pensando en enviar su sitio de jekyll a su repositorio de github como página de proyecto (páginas gh), la carpeta _site no tiene ningún propósito ya que la instalación de jekyll en github generará el _site automáticamente al cargar sus archivos (git empujar).
La carpeta _site es útil solo para la vista previa local de su sitio jekyll (normalmente se encuentra en localhost: 4000 por defecto).