Implémenter le workflow de duplication

Effectué

Une fourche est une copie d’un dépôt. La duplication d’un dépôt vous permet d’expérimenter librement des modifications sans affecter le projet d’origine.

Le plus souvent, les fourches vous permettent de proposer des modifications pour le projet d’une autre personne ou d’utiliser le projet de quelqu’un d’autre comme point de départ pour votre idée.

Une fourche est une copie complète d’un dépôt et inclut notamment tous les fichiers, toutes les validations et (éventuellement) toutes les branches.

Les fourches offrent un excellent moyen de prendre en charge un workflow inner source : vous pouvez créer une fourche pour suggérer des modifications quand vous n’avez pas l’autorisation d’écrire directement dans le projet d’origine.

Quand vous êtes prêt à partager ces modifications, vous pouvez le faire facilement à l’aide de demandes de tirage.

Que contient une fourche ?

Au départ, une fourche inclut tout le contenu du dépôt en amont (d’origine) correspondant.

Quand vous créez une fourche, vous pouvez inclure toutes les branches ou vous limiter à la branche par défaut.

Aucun pipeline de build, autorisation ou stratégie n’est appliqué.

La nouvelle fourche se comporte comme si quelqu’un avait cloné le dépôt d’origine, puis l’avait envoyé dans un nouveau dépôt vide.

Après la création d’une fourche, les nouveaux fichiers, dossiers et branches ne sont pas partagés entre les dépôts, sauf par le biais d’une demande de tirage.

Partager du code entre des fourches

Vous pouvez créer des demandes de tirage dans les deux sens : de la fourche vers le dépôt en amont et inversement.

Le sens de la fourche vers le dépôt en amont représente l’approche la plus courante.

Les autorisations, stratégies, builds et éléments de travail du dépôt de destination s’appliquent à la demande de tirage.

Choisir entre des branches et des fourches

Pour une petite équipe (2 à 5 développeurs), nous vous recommandons d’utiliser un seul dépôt.

Chacun doit utiliser une branche de rubrique et la branche primaire doit être protégée par des stratégies de branche.

À mesure que votre équipe se développe, vous pouvez vous retrouver dépassé par cette configuration. Dans ce cas, il est préférable de passer à un workflow de duplication.

Nous vous recommandons d’utiliser le workflow de duplication si de nombreux utilisateurs effectuent des validations occasionnelles dans votre dépôt (comme dans le cadre d’un projet open source).

En règle générale, seuls les contributeurs principaux de votre projet disposent de droits de validation directe dans votre dépôt.

Il peut cependant s’avérer utile de demander à des collaborateurs externes à ce groupe de travailler à partir d’une fourche du dépôt.

En outre, cette approche permettra d’isoler leurs modifications des vôtres jusqu’à ce que vous ayez l’occasion de vérifier le travail.

Workflow de duplication

  • Vous créez une fourche.
  • Vous la clonez localement.
  • Vous effectuez vos modifications localement et vous les envoyez vers une branche.
  • Vous créez et exécutez une demande de tirage vers le dépôt en amont.
  • Vous synchronisez la fourche avec la dernière version à partir du dépôt en amont.

Créer la fourche

  1. Accédez au dépôt à dupliquer, puis choisissez Fourche.
  2. Spécifiez un nom et choisissez le projet dans lequel vous souhaitez créer la fourche. Si le dépôt contient de nombreuses branches de rubrique, nous vous recommandons de dupliquer uniquement la branche par défaut.
  3. Choisissez les points de suspension, puis Fourche pour créer la fourche.

Diagramme montrant Créer la duplication.

Remarque

Pour créer une fourche, vous devez disposer de l’autorisation Créer un dépôt dans le projet choisi. Nous vous recommandons de créer, pour les fourches, un projet dédié dans lequel tous les contributeurs disposent de l’autorisation Créer un dépôt. Pour obtenir un exemple de la façon d’accorder cette autorisation, consultez la documentation sur la définition d’autorisations pour les dépôts Git.

Cloner votre duplication (fork) localement

Quand votre fourche est prête, clonez-la à l’aide de la ligne de commande ou d’un IDE comme Visual Studio. La fourche sera votre dépôt distant d’origine.

Pour des raisons pratiques, après le clonage, il sera utile d’ajouter le dépôt en amont (origine de la duplication) comme dépôt distant nommé upstream.

git remote add upstream {upstream_url}

Effectuer et envoyer des modifications

Il est possible de travailler directement dans la branche primaire. En effet, cette fourche est votre copie du dépôt.

Toutefois, nous vous recommandons de continuer à travailler dans une branche de rubrique.

Ceci vous permet de gérer simultanément plusieurs flux de travail indépendants.

En outre, ceci réduit la confusion quand vous voudrez synchroniser les modifications dans votre fourche.

Effectuez et validez vos modifications comme vous le faites habituellement. Quand vous avez terminé les modifications, envoyez-les vers l’origine (votre fourche).

Créer et exécuter une demande de tirage

Ouvrez une demande de tirage à partir de votre fourche vers le dépôt en amont. Toutes les stratégies, tous les réviseurs nécessaires et toutes les builds seront appliqués au dépôt en amont. Quand toutes les stratégies sont satisfaites, la demande de tirage peut être exécutée et les modifications sont intégrées de façon permanente au dépôt en amont.

Diagramme montrant Créer et exécuter une demande de tirage.

Important

Toute personne disposant de l’autorisation Lecture peut ouvrir une demande de tirage vers le dépôt en amont. Si un pipeline de build de demande de tirage est configuré, la build s’exécute sur le code introduit dans la fourche.

Synchroniser votre fourche avec la dernière version

Quand votre demande de tirage est acceptée en amont, vous devez vous assurer que votre fourche reflète l’état le plus récent du dépôt.

Nous vous recommandons de vous baser de nouveau sur la branche primaire du dépôt en amont (en supposant qu’il s’agit de la branche de développement primaire).

git fetch upstream main
git rebase upstream/main
git push origin

Le workflow de duplication vous permet d’isoler les modifications du dépôt principal jusqu’à ce que vous soyez prêt à les intégrer. Quand vous êtes prêt, vous pouvez intégrer le code aussi facilement que quand vous exécutez une demande de tirage.