S'il n'y a pas git séparé sur le second serveur, j'exporter des fichiers d'archives:
git checkout-index -a -f --prefix=/target/path/
Et puis utilisé sftp pour synchroniser avec le serveur distant:
#!/bin/bash
HOST="ftp.example.com"
USER="user"
PASS="pass"
LCD="/var/www/yourdir"
RCD="/www/"
lftp -c "
#debug;
open ftp://$USER:[email protected]$HOST;
lcd $LCD;
cd $RCD;
mirror --only-newer \
--reverse \
--verbose \
--exclude-glob somepattern ";
Vous pouvez automatiser ce processus en tant que script de construction (par exemple Phing), notre bind en tant que git hook de validation de publication, comme cela a déjà été mentionné.
S'il vous plaît, expliquer plus. Merci pour la réponse rapide. –
Eh bien, si vous utilisez votre propre dépôt git, vous pouvez écrire des scripts shell qui seront exécutés après un certain événement (par exemple post-checkout, pré-validation, post-validation) occurrences. Ce script shell doit alors simplement récupérer le référentiel sur le serveur que vous souhaitez exécuter. Github (avec lequel vous avez tagué cette question) utilise un mécanisme similaire appelé webhooks qui appelle une certaine URL au lieu d'un script shell. – Daff
Oh, maintenant je comprends, merci beaucoup pour une réponse bien expliquée et la réponse rapide! –