# gt: General Translation CLI tool: Gestion des branches URL: https://generaltranslation.com/fr/docs/cli/branching.mdx --- title: Gestion des branches description: Suivez séparément les traductions pour différentes branches Git --- ## Vue d’ensemble La gestion des branches vous permet de suivre séparément les traductions pour les différentes branches git de votre projet. C’est utile lorsque vous travaillez sur des branches de fonctionnalité qui ajoutent du nouveau contenu ou modifient du texte existant, et que vous souhaitez garder ces traductions isolées de votre branche principale jusqu’à la fusion de la fonctionnalité. Lorsque la gestion des branches est activée, la CLI détecte automatiquement votre branche git actuelle et associe les traductions à cette branche. Les traductions créées sur une branche de fonctionnalité n’affecteront pas vos traductions de production tant que vous n’aurez pas fusionné la branche. La gestion des branches est une fonctionnalité de GT Cloud et nécessite une offre payante. Si vous essayez de créer une branche autre que la branche par défaut sans offre payante, la CLI utilisera la branche par défaut. *** ## Utilisation Pour activer la gestion des branches, utilisez l’indicateur `--enable-branching` avec la commande `translate` : ```bash npx gt translate --enable-branching ``` Par défaut, la CLI détecte automatiquement votre branche Git actuelle. Si vous souhaitez plutôt spécifier un nom de branche personnalisé : ```bash npx gt translate --enable-branching --branch my-feature-branch ``` *** ## Options | Indicateur | Description | | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------- | | `--enable-branching` | Active la gestion des branches pour le projet. Requis pour utiliser le suivi des traductions par branche. | | `--branch ` | Spécifie un nom de branche personnalisé au lieu de le détecter automatiquement depuis Git. | | `--disable-branch-detection` | Désactive la détection automatique des relations entre branches. Utilise uniquement la branche spécifiée manuellement. | *** ## Fonctionnement Lorsque la gestion des branches est activée, la CLI effectue les opérations suivantes : 1. **Détecte la branche actuelle** : utilise git pour déterminer sur quelle branche vous vous trouvez. 2. **Identifie la branche par défaut** : détermine quelle est la branche par défaut (généralement `main` ou `master`) en vérifiant la référence HEAD du dépôt distant. 3. **Suit les relations entre les branches** : identifie les branches qui ont été fusionnées dans la branche actuelle (branches entrantes) ainsi que la branche à partir de laquelle la branche actuelle a été créée (branche parente). 4. **Associe les traductions aux branches** : toutes les traductions sont étiquetées avec la branche actuelle, ce qui les distingue de celles des autres branches. 5. **Hérite des traductions des branches parentes** : lorsque vous créez une nouvelle branche, les traductions sont automatiquement héritées de la branche parente, afin d'éviter de les retraduire et de vous les facturer deux fois. ### Héritage des traductions Lorsque vous travaillez sur une branche de fonctionnalité, la CLI prend en compte : * **Branches entrantes** : les branches qui ont été fusionnées dans votre branche actuelle. Cela permet d’y intégrer les traductions provenant des branches fusionnées. * **Branche d’origine** : la branche à partir de laquelle votre branche actuelle a été créée (généralement la branche par défaut). Cela permet à votre branche de fonctionnalité d’hériter des traductions existantes. Autrement dit, lorsque vous créez une nouvelle branche de fonctionnalité à partir de `main`, votre branche a accès à toutes les traductions existantes de `main`. Toutes les nouvelles traductions que vous créez sont associées à votre branche de fonctionnalité jusqu’à sa fusion. Après la fusion de la branche de fonctionnalité dans `main`, les traductions de cette branche sont automatiquement intégrées à `main`. *** ## Configuration Vous pouvez configurer les options de gestion des branches dans votre fichier `gt.config.json` : ```json title="gt.config.json" { "branchOptions": { "enabled": true, "currentBranch": "my-feature-branch", "autoDetectBranches": true, "remoteName": "origin" } } ``` | Propriété | Description | Valeur par défaut | | -------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------- | | `enabled` | Active la gestion des branches pour le projet | `false` | | `currentBranch` | Remplace le nom de la branche actuelle (au lieu de le détecter automatiquement) | `undefined` | | `autoDetectBranches` | Détecte automatiquement les relations entre branches (branches entrantes et branches d’origine) | `true` | | `remoteName` | Nom du remote Git utilisé pour détecter les branches | `"origin"` | Les indicateurs de la CLI ont priorité sur les options du fichier de configuration. Par exemple, `--enable-branching` remplace `branchOptions.enabled`, et `--disable-branch-detection` remplace `branchOptions.autoDetectBranches`. *** ## Exemple de workflow Voici un workflow typique avec des branches : 1. **Créez une branche de fonctionnalité** : ```bash git checkout -b feature/new-landing-page ``` 2. **Ajoutez du contenu traduisible** à votre branche de fonctionnalité. 3. **Traduisez avec la gestion des branches activée** : ```bash npx gt translate --enable-branching ``` Le CLI détecte que vous êtes sur `feature/new-landing-page` et associe toutes les nouvelles traductions à cette branche. 4. **Poursuivez le développement de votre fonctionnalité** - toutes les traductions supplémentaires restent sur votre branche de fonctionnalité. 5. **Fusionnez votre branche de fonctionnalité** dans `main` : ```bash git checkout main git merge feature/new-landing-page ``` 6. **Exécutez translate sur `main`** : ```bash npx gt translate --enable-branching ``` Le CLI détecte les traductions de `feature/new-landing-page` et les intègre à `main`. *** ## Dépannage ### Branche non détectée Si la CLI ne parvient pas à détecter votre branche actuelle, vous pouvez la spécifier manuellement : ```bash npx gt translate --enable-branching --branch my-branch ``` ### Utiliser un remote Git non standard Si votre remote Git ne s’appelle pas `origin`, configurez son nom dans votre configuration : ```json title="gt.config.json" { "branchOptions": { "remoteName": "upstream" } } ``` ou utilisez l’indicateur `--remote-name` : ```bash npx gt translate --enable-branching --remote-name upstream ``` ### Désactiver la détection des relations entre branches Si vous souhaitez uniquement utiliser la branche actuelle sans suivre les branches parentes ou en amont : ```bash npx gt translate --enable-branching --branch my-branch --disable-branch-detection ```