IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GIT Discussion :

Git avec deux serveurs distants


Sujet :

GIT

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 176
    Points : 94
    Points
    94
    Par défaut Git avec deux serveurs distants
    Salut,

    J'ai besoin de gérer deux serveurs git distants. Les deux serveurs contiennent une branche nomée "mabranche"

    Dans mon local j'ai deux "remotes": origin (le serveur principal) et consultants (le serveur secondaire) (j'ai utilisé git add remote pour cela)

    Je veux etre capable de faire les opérations suivantes:

    * Avoir acces au code de la branche "mabranche" dans le serveur consultants, réviser le code et si c'est valide faire un merge de consultants avec origin
    * Je veux aussi pousser de origin a consultants

    C'est quoi la meilleure maniere de faire cela?

  2. #2
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Bonjour,

    Rien de bien sorcier, si tu push/pull inividuellement sur tes remotes !

    Après ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    git remote add toto url_remote
    Il est bon de faire un pour récupérer les branches trackées... Après, tu peux faire des pull/push individuels en indiquant le remote !

    Si tu veux automatiser, tu pourras faire des aliases qui agissent séquentiellement sur tes remotes !
    Ou, modifier ton .git/config via git config -e. Par exempleAvec 'git push all' pour pousser dans les deux dépots ! Note: tu dois pouvoir modifier ta config via les variantesde 'git remote'

    Perso: je préfère les opérations individuelles sur chacun des dépots...

    Dans tous les cas tu ne pourras pas faire un lien direct entre tes remotes... il te faudra tjrs, c'est la règle dans git, passer par ton dépot local...

    Voilà
    a+
    Philippe

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 176
    Points : 94
    Points
    94
    Par défaut
    Ca commence à se clarifier. J'avoue que svn et git sont très différents.

    Je vais exprimer ce que j'ai compris: Si je veux regarder le code d'un dêpot je fait un pull de ce dépot, je teste en local. Si c'est valide je fait un push vers l'autre dépôt, sinon je fait un revert dans mon local du dernier pull.

    Est-ce que c'est la bonne manière de procéder?

    Merci

  4. #4
    Membre éprouvé

    Homme Profil pro
    Architecte technique
    Inscrit en
    Juin 2005
    Messages
    588
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2005
    Messages : 588
    Points : 1 230
    Points
    1 230
    Par défaut
    Pas si simple !

    git revert ne modifie pas l'historique (i.e. suppression de commit) mais applique un diff inverse ! Le revert d'un merge, suivi de commits et d'un nouveau merge, peut parraître innattendu (c'est très bien expliqué ici) : en gros, il ne faudrait plus travailler sur la branche fautive... ou analyser en détail l'arbre des commits...

    Pour corriger le tout tu peux demander à tes collaborateurs de faire un git revert sur la branche qu'ils ont poussé ! Et, de ton côté, il ne faut surtout pas pousser le résultat du pull (i.e le merge) mais faire un reset de ton dépot local: git reset --hard 'SHA-1' (tu pourras retrouver le bon point de restauration à l'aide de git reflog) ou plus simplement git reset --hard ORIG_HEAD (je t'encourage à passer par le reflog).
    Attention: avec l'option --hard tu perds tous tes commits... pour éviter celà tu peut mettre les commits que tu souhaites concerver sur une branche avant le reset

    a+
    Philippe

Discussions similaires

  1. Redondance avec deux serveurs ?
    Par Arrau dans le forum Installation
    Réponses: 8
    Dernier message: 01/09/2009, 15h16
  2. Redondance avec deux serveurs ?
    Par Arrau dans le forum SharePoint
    Réponses: 8
    Dernier message: 01/09/2009, 15h16
  3. Echange de données avec un serveur distant
    Par neo.51 dans le forum Windows Mobile
    Réponses: 3
    Dernier message: 28/01/2008, 10h18
  4. [SQL2005] Log shipping avec 2 serveurs distants
    Par TThieuMa dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/12/2007, 20h53
  5. Connectivité avec des serveurs distants
    Par Ph. B. dans le forum XMLRAD
    Réponses: 8
    Dernier message: 07/02/2003, 13h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo