Workflow des branches Git de fonctionnalités
Le workflow des branches Git de fonctionnalités est une manière efficace de collaborer avec son équipe dans le Studio Talend. Dans ce workflow, le développement des fonctionnalités se fait dans des branches dédiées et séparées de la branche principale main.
Le workflow de branches de fonctionnalités nécessite un référentiel central. La branche main représente l'historique officiel du projet. Lorsqu'une équipe de développement commence à travailler sur une nouvelle fonctionnalité, elle crée une branche et ne commite plus directement sur la branche locale main. Ainsi, plusieurs développeur·ses peuvent travailler sur une ou plusieurs fonctionnalités en même temps, sans avoir à modifier la branche principale main.
Voici un exemple de scénario dans lequel le workflow de branches de fonctionnalités est utilisé. Cet exemple d'utilisation du workflow en est un parmi de nombreux autres.
Prenez l'exemple d'un développeur du nom d'Andy et d'une développeuse du nom de Lucy, travaillant dans une même équipe, sur la fonctionnalité talend-123.
Andy est le premier développeur sur cette nouvelle fonctionnalité. Il crée une branche de fonctionnalité talend-123 basée sur main dans le Studio Talend et passe sur cette nouvelle branche.
Andy est connecté à sa branche locale Git talend-123 dans le Studio Talend. Pour le moment, la branche existe uniquement sur l'ordinateur d'Andy.
Andy effectue un Push pour créer la branche de fonctionnalité sur le serveur Git distant, à l'aide du menu Push fourni au sein du Studio Talend.
Andy crée deux Jobs, job1 et job2 et ses modifications sont automatiquement commitées sur la branche locale lorsqu'elles sont sauvegardées. Il effectue ensuite un Push manuel de ses modifications sur la branche Git distante, à l'aide du menu Push fourni au sein du Studio Talend.
Lucy doit à présent commencer à travailler sur cette fonctionnalité. Elle effectue un checkout de la branche de fonctionnalité talend-123 distante en tant que branche locale, puis elle modifie le Job job1 et crée un Job job3 sur la branche locale.
Pendant que Lucy travaille sur le Job job1, Andy modifie également le Job job1 pour créer un Joblet joblet1 sur la branche de fonctionnalité locale, puis effectue un Push de ses modifications vers le référentiel distant.
Lorsque Lucy essaye de faire un Push de ses modifications sur les Jobs job1 et job3 vers la branche distante talend-123, le Push est rejeté, car Andy vient d'effectuer un Push de ses modifications sur le Job job1 vers le référentiel distant.
Lucy doit d'abord effectuer un Pull depuis la branche de fonctionnalité distante talend-123. Des conflits existent, car Andy et Lucy ont fait des modifications sur le même Job job1.
Lucy doit résoudre les conflits. Dans cette situation, Lucy accepte toutes les modifications d'Andy et marque les conflits comme résolus. Le Pull se termine lorsque tous les conflits sont résolus. Lucy effectue avec succès un Push de ses modifications.
Pour plus d'informations concernant la résolution de conflits entre les branches, consultez Résoudre des conflits entre les branches.
La branche de fonctionnalité talend-123 contient à présent les modifications d'Andy et de Lucy.
Après avoir terminé le développement de la fonctionnalité, le développeur ou la développeuse peut fusionner (Merge) les modifications de la branche de fonctionnalité distante talend-123 dans la branche main distante en effectuant un checkout de la branche distante main en tant que branche locale, en effectuant une action Pull and Merge Branch depuis la branche talend-123 distante, puis en effecuant un Push depuis la branche main locale vers la branche main distante.