146 votes

GitHub : Réouverture d'une pull request fusionnée

  • J'ai fait quelques changements
  • J'ai soumis une demande de retrait
  • La demande de retrait a été acceptée et fusionnée.
  • Nous avons trouvé un bug
  • Les changements ont été supprimés à nouveau (force push to 1 commit before) pendant que je corrigeais le bug.

J'ai maintenant corrigé le bug et je veux resoumettre la demande de pull avec un commit supplémentaire. Existe-t-il un moyen de rouvrir la demande de retrait ou de la mettre à jour, ou dois-je créer une nouvelle demande de retrait, saisir à nouveau la description, etc. Gitorious dispose de cette fonctionnalité et nous avons récemment déménagé sur GitHub.

149voto

Michael Parker Points 566

La réponse semble être : Tu ne peux pas.

Une fois qu'une demande de retrait est fusionnée et fermée, elle est verrouillée pour toujours et ne peut pas être rouverte. Si votre demande est fusionnée, fermée, puis que vos modifications sont retirées (via un retour en arrière forcé avant la fusion), vous devrez ajouter des commits à la branche et créer une nouvelle demande, en copiant tous les détails et en fournissant probablement un lien vers la demande originale pour sauvegarder manuellement l'historique.

Cela pourrait être une demande de fonctionnalité intéressante pour le futur GitHub.

15voto

Tim Lovell-Smith Points 2635

Je viens juste de rouvrir avec succès une demande de pull en

  1. Commentaire sur la demande de retrait
  2. Cliquer sur le bouton "Soumettre et rouvrir" qui figurait sur le formulaire de commentaires.

5voto

William Weckl Points 2307

Vous pouvez utiliser l'action de retour en arrière :

enter image description here

Cela créera une autre demande de retrait qui annulera tous les changements effectués dans le PR fusionné.

4voto

Siva Gollapalli Points 45

Il suffit de dériver une nouvelle branche à partir de la branche existante où vous avez fait un commit supplémentaire. A partir de là, soumettez la pull request.

1voto

VonC Points 414372

La solution la plus simple serait de :

  • rebasez votre travail actuel sur la branche d'origine (provenant du repo auquel vous souhaitez envoyer votre demande de pull)
  • envoyer un nouveau demande de pull incluant votre travail actuel (appliqué à nouveau sur la version la plus récente de la branche d'origine).

El OP Mike Parker clarifie :

Je me suis branché sur branch A pour créer ma branche, branch B .
J'ai terminé le travail sur branch B .
B a été fusionné avec les tests branch C alors rolled back ( C a été rebasé pour supprimer la fusion de B ). C est maintenant effectivement A .
B a un demande de retrait fermée en C qui n'est plus fusionné.

Je veux m'engager à B et mettez à jour ou soumettez à nouveau la demande de pull dans le fichier A sans avoir à tout retaper et à créer une toute nouvelle demande.
Notre entreprise procède souvent de cette manière (fusion dans les branches de test pour les tests à grande échelle) et il serait dommage de perdre la possibilité de mettre à jour les demandes de retrait.

Comme mentionné dans " GitHub : Comment ajouter des commits à une Pull Request sur GitHub ? "

Si les responsables n'ont pas retiré votre demande, vous pouvez tout de même envoyer de nouveaux commits.
Quand ils ajoutent votre dépôt distant, ils vont tout tirer.

C'est ce qui est détaillé dans " Comment mettre à jour une demande de pull "

Il suffit de pousser sur la branche à laquelle la demande de pull fait référence.
Tant que la demande de retrait est toujours ouverte, elle devrait être mise à jour automatiquement avec toutes les modifications ajoutées.

Même chose dans " Flux de travail Github préféré pour la mise à jour d'une demande de tirage après la révision du code ".

Si la demande de retrait a été fermée, sa mise à jour ne semble plus possible.

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