En esta lección, nos centraremos en el flujo de trabajo. Más específicamente, usaremos los útiles enlaces de servicio de GitHub para actualizar automáticamente un proyecto en nuestro servidor personal cada vez que enviemos actualizaciones a un repositorio de GitHub..
Ciertamente necesitamos algún tipo de proyecto para jugar, ¿verdad? Vamos a hacer eso ahora mismo. Usando la herramienta que prefiera (recomendaría Structurer), cree un nuevo directorio, llamado proyecto impresionante
, y agrega un index.html
expediente. Siéntase libre de rellenar esto con un poco de marcado galimatías por el momento.
Con nuestro directorio de prueba en su lugar, vamos a crear nuestro primer Git commit.
Si no está familiarizado con Git, le recomiendo que primero revise "Control de versión fácil con Git".
Abra la línea de comando:
cd ruta / a / awesomeProject git init git add. git commit -m 'First commit'
Aquellos que estén familiarizados con Git deben sentirse como en casa. Estamos creando un repositorio de Git, agregando todos los archivos al área de preparación y luego estamos creando nuestro primer compromiso..
El siguiente paso es subir nuestro proyecto a GitHub. De esa manera, podemos llamar fácilmente a git pull
para descargar este proyecto desde cualquier computadora / servidor que deseemos.
Nuevamente, si no está familiarizado con GitHub y aún no ha creado una cuenta, lea Terminal, Git y GitHub para el resto de nosotros.
Comienza creando un nuevo repositorio Git..
A continuación, deberá completar algunos detalles sobre su proyecto. Así de simple:
Y finalmente, dado que ya estamos trabajando con un repositorio de Git existente, solo necesitamos ejecutar:
git remote add origin [email protected]: Tu-nombre de usuario / awesomeProject.git git push -u master de origen
Con eso fuera del camino, nuestro proyecto impresionante
ya está disponible en GitHub. Eso fue fácil!
Ahora, ciertamente necesitamos algún tipo de vista previa en vivo para nuestro proyecto, idealmente almacenado en nuestro propio servidor. Pero esto puede ser un dolor a veces. Envíe sus actualizaciones a GitHub, inicie sesión en su servidor, transfiera manualmente el directorio actualizado, etc. Por supuesto, esto solo toma un momento, pero cuando realiza múltiples cambios a lo largo del día, esto puede convertirse rápidamente en una carga.
Pero un paso a la vez. Abordaremos este dilema en el Paso 4. Por ahora, simplemente detengamos nuestro repositorio Git en nuestro servidor. Para ello, necesitamos SSH en.
Dependiendo de su anfitrión, sus credenciales SSH variarán ligeramente. Busque en Google "SSH de su nombre de host" y seguramente encontrará las instrucciones necesarias. Una vez que estés listo, avancemos:
Usaremos mi servidor personal como ejemplo:
ssh [email protected]
Y con esas dos líneas, estamos en!
Luego, nosotros discos compactos
al directorio padre de donde deseamos almacenar proyecto impresionante
. Para mí, esto será: cd domains / demo.jeffrey-way.com / html /
. Por supuesto, modifíquelo según su propia estructura de directorios..
Vamos a clonar el repo de GitHub ahora.
git clone [email protected]: Your-User-Name / awesomeProject.git
Dé ese comando unos segundos, pero, antes de que lo sepa, ese directorio ahora está disponible en su servidor y, en mi caso, podría verse en: http://demo.jeffrey-way.com/awesomeProject
.
El problema inherente en este punto es que no hay una conexión específica entre nuestro repositorio de GitHub y el directorio almacenado en nuestro servidor, al menos no una conexión automatizada. Por ejemplo, si actualizamos nuestros archivos de origen en nuestra máquina local y luego enviamos los cambios a GitHub:
git add index.html git commit -m 'Imagen agregada de gallina bailarina' git push origin master
Estos cambios no se reflejarán en nuestro servidor. ¡Por supuesto que no! Para hacerlo, debemos, una vez más, SSH en nuestro servidor, discos compactos
al proyecto impresionante
directorio, y realizar otro git pull
para traer los archivos fuente actualizados.
¿No sería fantástico si, cada vez que enviamos actualizaciones a GitHub, esos nuevos archivos de origen se actualizaran automáticamente en nuestro servidor de vista previa en vivo??
Resulta que podemos hacerlo fácilmente con los ganchos de servicio de GitHub..
Puede acceder a esta página presionando el botón "Administrador" desde su repositorio de GitHub, y luego haciendo clic en "Enganches de servicio". La opción "Post-Receive URL" indicará a GitHub que envíe una solicitud POST a la página especificada cada vez que presione su repositorio de GitHub. esto es exactamente lo que necesitamos!
"Accederemos a estas URL con solicitudes POST cuando nos presione, y le pasaremos información sobre el impulso".
Para hacer que esto funcione, necesitaremos crear un archivo más que maneje el proceso de realizar el git pull
. Agregar un nuevo archivo, llamado github.php
(o cualquier cosa que desee, preferiblemente más vaga), y agregue:
Así que ahora estás pensando: "Jeff se ha vuelto loco. No puedes poner un script Bash en una cadena de PHP". ¿Bien? Sí, puedes, una vez que te des cuenta de que esas no son comillas simples arriba, son contraatacas.
Cuando encierres una secuencia en tics, en PHP, se tratará como un script de Bash. De hecho, es idéntico a usar la función bash_exec.
Guarde ese archivo y cárguelo en el
proyecto impresionante
directorio en su servidor. Cuando haya terminado, copie la url en ese archivo y péguela en el cuadro de texto "Post-Receive URL". En mi caso, la url seríahttp://demo.jeffrey-way.com/awesomeProject/github.php
.Con esto en su lugar, cada vez que
empujar
a su repositorio de GitHub, ese archivo será llamado, y elproyecto impresionante
El directorio en su servidor se actualizará automáticamente, sin que usted necesite mover un dedo. Bonita ingeniosa ay?
También puede disfrutar de: