2012-10-30 2 views
16

Je suis assez nouveau à Git, et j'ai lu le livre Pro Git @http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging. Ma question est si ce que je fais aujourd'hui est la façon préférée de travailler avec le serveur de production et un dépôt Git distant."Correcte" façon de tirer "branche de production" git au serveur de production

J'ai mon référentiel hébergé sur GitHub, en utilisant trois branches distantes: développement -> testing -> master.

Chaque fois que la branche 'testing' a été vérifiée, je "masterise" avec 'testing' (fast forward?) Localement, et git push 'master' avec GitHub.

Sur le serveur de production (/opt/www/url.com/) Je l'ai fait:

git init 
git remote add origin https://github.com/..... 
git pull origin master 

Maintenant, chaque fois que je veux mettre à jour le maître je lance un git pull

git pull origin master 

production ne poussera jamais les changements à distance. Et les changements locaux ne se produiront pas. Est-ce que je le fais correctement? Si non, quel est le moyen préféré pour tirer les mises à jour à la production? Éditer # 1: Je ne veux pas gérer les conflits sur le serveur de production, auquel je fais face maintenant (d'une façon ou d'une autre j'ai fait quelque chose de mal). Je veux simplement tirer vers le bas la dernière branche maîtresse mise à jour, et passer à elle.

Répondre

12

Vous devez utiliser:

git init --bare 

Pour initialiser une prise en pension qui n'aura pas un arbre de travail, ce qui signifie qu'il n'y aura pas de conflit.

+3

pourquoi a-t-il été abaissé? –

+0

C'est une bonne question @AlainANDRE –

+0

Comment un serveur de production fonctionnerait-il s'il ne dispose pas d'une copie de travail du dépôt? – starbeamrainbowlabs

Questions connexes