2009-11-29 13 views
0

J'ai un peu d'une situation difficile. Fondamentalement, j'ai un référentiel git "maître" local. Toutes les quelques heures, je «pousse» mes changements sur un serveur à partir duquel je me rends ensuite sur mes machines clientes. Eh bien, étant le génie que je suis, j'ai accidentellement utilisé GITK pour ramener mon référentiel local «maître» une version trop loin.Comment puis-je tirer de mon serveur git «public» pour mettre à jour mon «maître» local brisé?

Quelles sont les étapes à suivre pour récupérer la dernière version validée depuis le serveur tout en conservant la maîtrise de ma version locale?

Meilleur.

EDIT: Excellentes réponses à tous. Très appréciée!

+0

Pourrait juste tirer du serveur vers l'un des clients, puis copier sur le résultat tiré et le remettre en mémoire au maître? – Amber

+0

Si ces réponses sont vraiment excellentes, pourquoi ne les avez-vous pas votées? – innaM

Répondre

3

En supposant que votre maître local est toujours cl ean, -à-dire, aucun changement local, mais un certain nombre de commits derrière maître sur le repo de serveur, il vous suffit de tirer de lui:

git pull server master 

Dans la commande ci-dessus, server est le nom de la télécommande que d'autres les clients tirent de (ou vous pouvez utiliser son URL à la place).

2

Tout d'abord, planquer vos modifications existantes:

git stash 

Ensuite, exécutez (en considérant que la télécommande à partir de laquelle vous souhaitez mettre à jour votre référentiel local à être nommé origin):

git remote update origin 
git reset --hard origin/master 

Appliquer la modifications cachées:

git stash pop