Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
2229 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Git] Séquence à exécuter en fonctionnement classique [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Git] Séquence à exécuter en fonctionnement classique [résolu]

n°1794207
Fred82
Posté le 01-10-2008 à 09:55:20  profilanswer
 

Salut,

 

Concernant Git, juste pour clarifier les choses, quelle est la séquence d'opérations à exécuter dans le cas classique où deux développeurs travaillent sur le même projet, avec chacun un repository pushé vers un repository sur un serveur ?

 

Car au début, je pensais travailler sur la même branche master, mais cela a généré des erreurs, des modifs de l'un ont écrasés celles de l'autre. Alors j'ai introduit une branche pour chacun, et on a fait une fusion à chaque fois qu'on voulait intégrer le travail de l'autre, et là il n'y a plus eu de problème. Mais je suis bien conscient que ce n'est pas la solution, c'est évident qu'on peut travailler sur la même branche.

 

Alors, où se situe mon erreur, et pour faire simple, deux développeurs travaillant sur la même branche, quelle est la séquence d'opération à exécuter lorsqu'un développeur veut publier son travail, et lorsqu'un développeur veut updater son repository ?

 

Ce que je faisais avant, c'est : commit, push. et pull de l'autre côté. Il manque sans doute quelque chose.

 

Edit, réponse : commit, push, et pull, c'est tout à faire correct. Le GUI ne permet pas de faire un pull directement.

Message cité 1 fois
Message édité par Fred82 le 01-10-2008 à 15:46:33

---------------
Vos smileys favoris sur HFR : Script Greasemonkey / Topic HFR officiel
mood
Publicité
Posté le 01-10-2008 à 09:55:20  profilanswer
 

n°1794348
Masklinn
í dag viðrar vel til loftárása
Posté le 01-10-2008 à 12:09:33  profilanswer
 

Fred82 a écrit :

Ce que je faisais avant, c'est : commit, push. et pull de l'autre côté. Il manque sans doute quelque chose.


Ban non, à la limite tu peux faire un git pull --rebase histoire de pas avoir un merge, mais normalement git pull va aller chercher les modifs remote et va les merger avec les locales


---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1794374
Fred82
Posté le 01-10-2008 à 13:12:58  profilanswer
 

Hélas ça ne marche pas impeccablement, je viens de faire un test :
 
Repository 1 : contient un fichier texte fichier.txt
Repository 2 : identique à Rep1
Repository Serveur : référentiel
 
Scénario :
1) Repository 2 : Ajout d'une ligne à la fin de fichier.txt. Commit + Push (via le GUI)
2) Repository 2 : Ajout d'une ligne à la fin de fichier.txt, mais sans avoir fait de pull auparavant (oubli ! ça peut arriver). Commit : OK. Mais Push : Erreur : "[rejected]        master -> master (non-fast forward)". Normal. Alors Pull : OK. Mais Push : même erreur. On fait quoi maintenant ?


---------------
Vos smileys favoris sur HFR : Script Greasemonkey / Topic HFR officiel
n°1794390
Fred82
Posté le 01-10-2008 à 13:37:43  profilanswer
 

Ok je crois avoir compris : dans mon exemple, après le dernier pull, on se retrouve avec un historique de branches qui contient master sur une branche, et remotes/origin/master sur une autre. On ne peut pas pusher master car master est dans un état incohérent par rapport au référentiel (remotes). Il suffit alors de faire un merge local de master avec remotes/origin/master, puis ensuite pusher.
 
Donc la séquence devrait être :
1) commit,
2) push,
et de l'autre côté :
 
1) pull,
2) merge éventuel (systématique si le pull introduit des modifs), (un merge automatique avec pull serait pratique... je ne retrouve pas comment on fait, j'en avait discuté sur ce topic, mais ça ne marche pas finalement)
3) commit,
4) push
 
Par contre, je n'arrive plus à reproduire un cas où les modifs postérieures de quelqu'un annulerait les modifs antérieures de l'autre si le premier n'a pas pullé auparavant. Peut-être que ce n'est pas censé arriver...


---------------
Vos smileys favoris sur HFR : Script Greasemonkey / Topic HFR officiel
n°1794404
Masklinn
í dag viðrar vel til loftárása
Posté le 01-10-2008 à 14:03:39  profilanswer
 

Fred82 a écrit :

Par contre, je n'arrive plus à reproduire un cas où les modifs postérieures de quelqu'un annulerait les modifs antérieures de l'autre si le premier n'a pas pullé auparavant. Peut-être que ce n'est pas censé arriver...


C'est très clairement pas censé arriver non


---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1794434
Fred82
Posté le 01-10-2008 à 15:10:49  profilanswer
 

:jap:
 
Et sinon pour mon problème cité ci-dessus :
 
"un merge automatique avec pull serait pratique... je ne retrouve pas comment on fait, j'en avait discuté sur ce topic, mais ça ne marche pas finalement"
 
J'ai trouvé l'explication. Tout simplement, la commande que je supposais être un pull via le GUI (en VF : "Récupérer de > origin", je ne sais pas ce que ça donne en VO), n'est pas un vrai pull. En revanche, la commande bash "git pull" fait bien le merge (git fetch && git merge comme tu avais dit, Masklinn), contrairement au GUI :pfff: Il semble que le pull n'a pas encore été intégré au GUI.


---------------
Vos smileys favoris sur HFR : Script Greasemonkey / Topic HFR officiel
n°1794444
Masklinn
í dag viðrar vel til loftárása
Posté le 01-10-2008 à 15:26:48  profilanswer
 

Fred82 a écrit :

Il semble que le pull n'a pas encore été intégré au GUI.


Ou alors, plus simplement, git gui utilise la commande plus bas niveau "git fetch" et laisse à l'utilisateur le choix entre merge et rebase (ça a un sens dans la mesure où il n'est pas possible de donner l'argument "rebase" via la GUI, je présume)
 
Note: j'utilise pas souvent git, et d'autant moins git gui, donc je peux me tromper


---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1794461
Fred82
Posté le 01-10-2008 à 15:45:03  profilanswer
 

Oui c'est cohérent ce que tu dis.
 
En outre, j'ai trouvé un message de quelqu'un qui réclame cette feature :

Citation :

I suggest add git -pull function at remote menu


http://groups.google.com/group/msy [...] 9f1242902e (30 juillet 2008)


---------------
Vos smileys favoris sur HFR : Script Greasemonkey / Topic HFR officiel

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Git] Séquence à exécuter en fonctionnement classique [résolu]

 

Sujets relatifs
[Résolu] - [Batch Dos] créer un tache planifiée J+3[résolu] [php] Générer une miniature à partir d'une image ?
connexion distante à une bdd [résolu][Résolu] Manipulation de dates par FILETIME et SYSTEMTIME
[C/C++] Choisir sur quel processeur/coeur executer du code[Résolu]-[BATCH DOS] modification Mot De Passe dans l'Active Directory
[Résolu]Petite question trés simple pour comparaison entre deux chaine[Résolu] Problème avec une boucle
Parcourir un répertoire (Résolu)[résolu]requete http en php, recuperer le code source d'une page web
Plus de sujets relatifs à : [Git] Séquence à exécuter en fonctionnement classique [résolu]


Hit-Parade
Copyright © 1997-2012 Hardware.fr SARL / Groupe LDLC / LesNumeriques.com / Version anglaise du site: BeHardware