102 votes

Comment puis-je revenir sur plusieurs commits Git (déjà poussés) dans un dépôt publié ?

Nouveau dans git, et déjà en train de faire des bêtises.

J'ai commité et poussé quelques changements sur une machine de développement distante. Je dois récupérer une ancienne version, mais conserver les "mauvais progrès" réalisés jusqu'à présent pour continuer à travailler sur une branche séparée ;

Je pensais le faire comme ça :

  1. Créer une branche locale nommé : "chose-testée"

  2. Rétablir le dépôt local à l'État où il a travaillé (en espérant que des engagements significatifs aideront) ;

  3. Pousser vers la télécommande

  4. terminer les tests sur la chose testée

  5. Fusionner "chose testée" en développement

  6. Pousser vers la télécommande

Entre les étapes 3 et 5, d'autres développeurs peuvent commettre et pousser, et je crains que cela n'aboutisse à une "tragédie de fusion" - Quoi qu'il en soit, est-ce une bonne façon de procéder ?

UPDATE :

Le principal problème ici réside dans 2)

Ici, sur le sujet : "diviser le travail en une branche thématique" http://learn.github.com/p/undoing.html

Ils suggèrent :

  1. $ git branch test
  2. $ git reset --hard a6b4c974

En faisant cela, d'autres développeurs pourraient encore :

$ git commit (sur la branche dev)

et je peux pour tester et travailler jusqu'à ce que fusionner temps.

Malgré toutes les options qui s'offrent à vous, cela semble être une bonne approche à suivre. Cependant, il n'est pas précisé si cela peut être fait après avoir poussé ?

Veuillez noter ce qui suit : Depuis que j'ai fait ces changements et que j'ai tout gâché, Personne d'autre n'a travaillé sur le dépôt jusqu'à présent. . Donc, si je rétablis le répertoire de travail, personne ne le remarquera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X