FTP es tan de los 90. ¡Implementemos a través de Git en su lugar!

Actualizaci√≥n : este art√≠culo ha sido publicado en el n√ļmero 42 de Hacker Monthly .


Primero, cree un directorio en su servidor e inicialice un repositorio git vacío. Me gusta servir mis sitios web desde ~/www/, así que eso es lo que haré en este ejemplo.

mkdir ~/www/example.com && cd ~/www/example.com
git init

A continuación, configuremos el repositorio git de su servidor para manejar bien la implementación a través de git push.

git config core.worktree ~/www/example.com
git config receive
.denycurrentbranch ignore

Finalmente, configuraremos un enlace posterior a la recepción para que git verifique la masterrama para que su servidor web pueda entregar archivos desde esa rama. (Recuerde, ^Des Control + D, o cualquiera que sea el carácter EOT de su shell .

cat > .git/hooks/post-receive
#!/bin/sh
git checkout
-f
^D
chmod
+x .git/hooks/post-receive

Tenga en cuenta que puede agregar lo que quiera al enlace posterior a la recepción si tiene un proceso de compilación. Por ejemplo, uno de mis proyectos de sinatra usa el siguiente gancho posterior a la recepción:

#!/bin/sh
git checkout
-f
bundle install

touch
~/www/example.com/tmp/restart.txt

De vuelta en su máquina local, preparemos su repositorio de git para su implementación.

cd ~/www-dev/example.com
git remote
add origin
ssh
://[email protected]/home/user/www/example.com

Para el primer envío a su servidor, ejecute el siguiente comando.

git push origin master

Ahora, siempre que desee implementar cambios que haya realizado localmente, ¬°simplemente ejecute el siguiente comando!

git push