Fusion d'une pull request - Amazon CodeCatalyst

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fusion d'une pull request

Une fois que votre code a été révisé et que tous les réviseurs requis l'ont approuvé, vous pouvez fusionner une pull request dans la CodeCatalyst console en utilisant une stratégie de fusion compatible, telle que fast-forward. Toutes les stratégies de fusion prises en charge dans la CodeCatalyst console ne sont pas disponibles en tant que choix pour toutes les pull requests. CodeCatalyst évalue la fusion et vous permet uniquement de choisir entre les stratégies de fusion disponibles dans la console et capables de fusionner la branche source avec la branche de destination. Vous pouvez également fusionner une pull request avec les stratégies de fusion Git de votre choix en exécutant la git merge commande sur votre ordinateur local ou dans un environnement de développement pour fusionner la branche source dans la branche de destination. Vous pouvez ensuite transférer ces modifications de la branche de destination vers le référentiel source CodeCatalyst.

Note

La fusion de la branche et l'application des modifications dans Git ne ferme pas automatiquement la pull request.

Si vous avez le rôle d'administrateur de projet, vous pouvez également choisir de fusionner une pull request qui ne répond pas encore à toutes les exigences en matière d'approbations et de règles d'approbation.

Fusion d'une pull request (console)

Vous pouvez fusionner une pull request dans la CodeCatalyst console s'il n'y a aucun conflit de fusion entre les branches source et destination et si tous les réviseurs requis ont approuvé la pull request. En cas de conflit ou si la fusion ne peut pas être terminée, le bouton de fusion est inactif et une étiquette Non fusionnable s'affiche. Dans ce cas, vous devez obtenir l'approbation de tous les approbateurs requis, résoudre les conflits localement si nécessaire et appliquer ces modifications avant de pouvoir fusionner. La fusion d'une pull request enverra automatiquement un e-mail au créateur de la pull request ainsi qu'à tous les réviseurs obligatoires ou facultatifs. Il ne fermera ni ne modifiera automatiquement le statut des problèmes liés à la pull request.

Astuce

Vous pouvez configurer les événements de pull request pour lesquels vous recevrez des e-mails dans le cadre de votre profil. Pour plus d’informations, consultez Envoi de notifications par Slack et par e-mail depuis CodeCatalyst.

Pour fusionner une pull request
  1. Accédez au projet dans lequel vous souhaitez fusionner une pull request.

  2. Sur la page du projet, sous Ouvrir les pull requests, choisissez la pull request que vous souhaitez fusionner. Si vous ne voyez pas la pull request, choisissez Afficher toutes les pull requests, puis choisissez-la dans la liste. Sinon, dans le volet de navigation, choisissez Code, choisissez Pull requests, puis choisissez la pull request que vous souhaitez fusionner. Choisissez Merge (Fusionner).

  3. Choisissez parmi les stratégies de fusion disponibles pour la pull request. Vous pouvez éventuellement sélectionner ou désélectionner l'option permettant de supprimer la branche source après avoir fusionné la pull request, puis choisissez Merge.

    Note

    Si le bouton Fusionner est inactif ou si le libellé Non fusionnable s'affiche, cela signifie que les réviseurs requis n'ont pas encore approuvé la pull request ou que la pull request ne peut pas être fusionnée dans la CodeCatalyst console. Un réviseur qui n'a pas approuvé une pull request est indiqué par une icône en forme d'horloge dans la zone des détails de la pull request dans Vue d'ensemble. Si tous les réviseurs requis ont approuvé la pull request mais que le bouton Fusionner est toujours inactif, il se peut que vous ayez un conflit de fusion. Choisissez le libellé Non fusionnable souligné pour obtenir plus de détails sur les raisons pour lesquelles la pull request ne peut pas être fusionnée. Vous pouvez résoudre les conflits de fusion pour la branche de destination dans un environnement de développement ou dans la CodeCatalyst console, puis fusionner la pull request, ou vous pouvez résoudre les conflits et fusionner localement, puis transférer le commit contenant la fusion vers la branche source in CodeCatalyst. Pour plus d'informations, consultez Fusion d'une pull request (Git) votre documentation Git.

Ignorer les exigences relatives à la fusion

Si vous avez le rôle d'administrateur de projet, vous pouvez choisir de fusionner une pull request qui ne répond pas encore à toutes les exigences en matière d'approbations et de règles d'approbation requises. C'est ce que l'on appelle le remplacement des exigences d'une pull request. Vous pouvez choisir de le faire si le réviseur requis n'est pas disponible ou s'il est urgent de fusionner une pull request spécifique dans une branche dont les règles d'approbation ne peuvent pas être respectées rapidement.

Pour fusionner une pull request
  1. Dans la pull request dans laquelle vous souhaitez annuler les exigences et fusionner, cliquez sur la flèche déroulante à côté du bouton Fusionner. Choisissez Ignorer les exigences d'approbation.

  2. Dans Raison de dérogation, expliquez pourquoi vous fusionnez cette pull request sans qu'elle réponde aux règles d'approbation et aux exigences requises en matière de révision. Bien que cela soit facultatif, cela est fortement recommandé.

  3. Choisissez éventuellement une stratégie de fusion ou acceptez la stratégie par défaut. Vous pouvez également choisir de mettre à jour le message de validation généré automatiquement avec plus de détails.

  4. Sélectionnez ou désélectionnez l'option permettant de supprimer la branche source lors de la fusion. Nous vous recommandons de conserver la branche source lorsque vous passez outre aux exigences relatives à la fusion d'une pull request jusqu'à ce que vous ayez eu l'occasion de revoir la décision avec les autres membres de l'équipe.

  5. Choisissez Merge (Fusionner).

Fusion d'une pull request (Git)

Git propose de nombreuses options de fusion et de gestion de branches. Les commandes suivantes sont quelques-unes des options que vous pouvez utiliser. Pour plus d'informations, consultez la documentation disponible sur le site Web de Git. Une fois que vous avez fusionné et appliqué vos modifications, fermez manuellement la pull request. Pour plus d’informations, consultez Clôture d'une pull request.

Fusionne les modifications de la branche source du dépôt local vers la branche de destination du dépôt local.

git checkout destination-branch-name

git merge source-branch-name

Fusionne la branche source dans la branche de destination, en spécifiant une fusion rapide. Cela fusionne les branches et déplace le pointeur de branche de destination vers l'extrémité de la branche source.

git checkout destination-branch-name

git merge --ff-only source-branch-name

Fusionne la branche source avec la branche de destination, en spécifiant une fusion par squash. Cela combine tous les commits de la branche source en un seul commit de fusion dans la branche de destination.

git checkout destination-branch-name

git merge --squash source-branch-name

Fusionne la branche source dans la branche de destination, en spécifiant une fusion à trois voies. Cela crée un commit de fusion et ajoute les validations individuelles de la branche source à la branche de destination.

git checkout destination-branch-name

git merge --no-ff source-branch-name

Supprime la branche source dans le dépôt local. Cela est utile pour nettoyer votre dépôt local après avoir fusionné avec la branche de destination et transféré les modifications au référentiel source.

git branch -d source-branch-name

Supprime la branche source du référentiel distant (le référentiel source dans CodeCatalyst) en utilisant le surnom spécifié par le dépôt local pour le référentiel distant. (Notez l'utilisation du signe deux points (:).) Vous pouvez également --delete le spécifier dans le cadre de la commande.

git push remote-name :source-branch-name

git push remote-name --delete source-branch-name