12
votes

Tirer automatiquement sur le serveur distant avec git push?

Voici ce que j'essaie de faire:

J'ai un référentiel GitHub, dont une partie que j'aimerais rendre Viewable Web. À l'heure actuelle, j'ai cloné le référentiel sur mon propre serveur et cela fonctionne bien, mais afin de le tenir à jour, je dois vous connecter manuellement et tirer les dernières modifications.

Je ne sais pas si c'est la meilleure idée (ou la meilleure approche), mais j'aimerais que le serveur distant puisse tirer automatiquement chaque fois que quelqu'un appuie sur le référentiel. GitHub facilite la gestion d'un script lorsque quelqu'un pousse, mais je ne sais pas comment tirer une fois que quelqu'un le fait.

J'utilisais php pour la simplicité, mais je fais juste quelque chose comme git tirer Naturally ne fonctionne pas à cause des autorisations. Est-ce une mauvaise idée ou y a-t-il une autre façon d'atteindre ce que je veux faire? Cela semble être une installation commune, mais je n'étais pas sûr.

merci.


0 commentaires

3 Réponses :


3
votes

S'il est facile d'exécuter un script sur pousser , vous pouvez configurer des crochets pour pousser:

  • de GitHUB à un repo Nu (WorkTree vide) sur votre serveur Web
  • de votre repo nu sur votre serveur Web à votre repo "en direct" (avec un travail de travail représentant votre site Web)

    Vous pouvez ensuite associer qu'avec un crochet sur votre repo "en direct" pour se mettre à jour (à travers une "fusion de git", fusionnant le contenu de votre repo nu à votre repo "en direct"), chaque fois que votre repo à nu vous appelle.

    Vous obtenez l'effet que vous voulez: Toute pression sur votre repo GitHub (pour une certaine succursale, je suppose) déclenchera un rafraîchissement de votre serveur Web "en direct".


0 commentaires

1
votes

J'ai fait quelque chose qui fonctionne presque exactement de cette façon, sauf que le repo "distant" qui reçoit la poussée est sur la même machine que le repo qu'après les tirettes. Il est vrai (et important) que exactement le même ensemble d'utilisateurs a des autorisations sur les deux référentiels. (Mais cela devrait être d'accord; vous ne voulez pas que des personnes aléatoires poussent votre repo.) Dans tous les cas, je dispose simplement de l'appel de git post-update appeler un script shell qui fait la traction pour moi. Le seul bit tressayeux est que vous devez nettoyer l'environnement (j'ai utilisé env -i ou vous pouvez non définition de variables liées à git), sinon la traction est confuse.


0 commentaires

0
votes

Voici une webhook qui pourrait peut-être vous aider. Je pense que c'est exactement ce que vous recherchez: serveur à distance Webhook


0 commentaires