# Workspace Isolation (/fr/docs/verdent-manager/advanced-features/workspace-isolation)

> Git worktree-based isolation for parallel experimentation without conflicts



Workspace Isolation est le système de Verdent qui garantit que le travail parallèle n'interfère jamais avec lui-même. Chaque espace de travail est un environnement de travail totalement distinct, isolé au niveau du système de fichiers grâce aux git worktrees.

***

## Ce que vous allez apprendre [#ce-que-vous-allez-apprendre]

* Comment l'isolation des espaces de travail évite les conflits
* Comment les git worktrees permettent cette isolation
* La différence entre l'espace de travail de base et les espaces de travail
* Créer, basculer entre et gérer des espaces de travail
* Les bonnes pratiques de gestion des espaces de travail

***

## Qu'est-ce que l'isolation des espaces de travail ? [#quest-ce-que-lisolation-des-espaces-de-travail-]

L'isolation des espaces de travail garantit que les modifications d'une tâche n'affectent jamais une autre tâche. Testez différentes approches en parallèle, comparez les résultats et rebasez sélectivement uniquement les modifications que vous souhaitez réintégrer dans la branche principale.

### Comment ça fonctionne [#comment-ça-fonctionne]

| Couche              | Fonctionnement                                                                     |
| ------------------- | ---------------------------------------------------------------------------------- |
| **Répertoire**      | Chaque espace de travail est un répertoire isolé                                   |
| **Branche**         | Chaque espace de travail possède son propre checkout de branche                    |
| **Fichiers**        | Les modifications de fichiers dans un espace de travail n'affectent pas les autres |
| **Zone de staging** | Chaque espace de travail possède sa propre zone de staging                         |

### Avantages [#avantages]

<CardGroup cols="2">
  <Card title="Zéro interférence" icon="shield-halved">
    Les agents parallèles ne peuvent pas entrer en conflit, c'est physiquement impossible
  </Card>

  <Card title="Expérimentation sécurisée" icon="flask">
    Testez des modifications risquées sans affecter le code stable
  </Card>

  <Card title="Comparaison claire" icon="code-compare">
    Utilisez git diff pour comparer les approches entre espaces de travail
  </Card>

  <Card title="Rebase sélectif" icon="code-merge">
    Ne rebasez que les résultats auxquels vous faites confiance
  </Card>
</CardGroup>

***

## Espace de travail de base vs espaces de travail [#espace-de-travail-de-base-vs-espaces-de-travail]

### Espace de travail de base [#espace-de-travail-de-base]

L'espace de travail de base est votre checkout de dépôt d'origine, servant de point de départ par défaut.

| Caractéristique        | Description                                                    |
| ---------------------- | -------------------------------------------------------------- |
| **Emplacement**        | Votre emplacement d'origine de clonage ou d'initialisation git |
| **Branche principale** | Généralement sur la branche main ou de développement           |
| **Point de référence** | Source pour comparer le travail expérimental                   |

**Quand utiliser l'espace de travail de base :**

* Pour des modifications rapides ne nécessitant pas d'isolation
* Comme point de référence pour comparer le travail expérimental
* Lorsque vous voulez que les modifications aillent directement sur la branche principale
* Pour des tâches simples ne nécessitant pas d'exécution en parallèle

### Espace de travail [#espace-de-travail]

Un espace de travail est un environnement de travail isolé créé à l'aide des git worktrees, avec son propre checkout de branche indépendant et son propre état de fichiers.

**Quand utiliser un espace de travail :**

* Développement de fonctionnalités en parallèle
* Expérimentation avec des modifications risquées
* Travail sur plusieurs tâches simultanément
* Lorsque vous souhaitez isoler le travail avant de rebaser

***

## Créer et gérer des espaces de travail [#créer-et-gérer-des-espaces-de-travail]

### Créer un nouvel espace de travail [#créer-un-nouvel-espace-de-travail]

| Plateforme  | Raccourci      |
| ----------- | -------------- |
| **macOS**   | `Cmd+Shift+N`  |
| **Windows** | `Ctrl+Shift+N` |

**Ce qui se passe :**

1. Verdent crée un répertoire de worktree git isolé
2. Une nouvelle branche est créée (ou une branche existante est extraite)
3. L'espace de travail est totalement isolé des autres espaces de travail
4. L'espace de travail apparaît dans **Tous les espaces de travail** dans la barre supérieure

### Basculer entre les espaces de travail [#basculer-entre-les-espaces-de-travail]

| Action                                | macOS                                                                 | Windows                                                               |
| ------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- |
| **Espace de travail suivant**         | `Ctrl+Tab`                                                            | `Ctrl+Tab`                                                            |
| **Espace de travail précédent**       | `Ctrl+Shift+Tab`                                                      | `Ctrl+Shift+Tab`                                                      |
| **Sélectionner un espace de travail** | Sélectionnez **Tous les espaces de travail** dans la barre supérieure | Sélectionnez **Tous les espaces de travail** dans la barre supérieure |

**Préservation de l'état :**

* Verdent maintient actifs tous les états des espaces de travail
* Basculez instantanément sans délai de configuration
* Le contexte complet est préservé lors du basculement

***

## Rebaser les modifications d'un espace de travail [#rebaser-les-modifications-dun-espace-de-travail]

Lorsque vous êtes prêt à réintégrer les modifications de l'espace de travail dans la branche principale :

### Utiliser l'interface de Verdent [#utiliser-linterface-de-verdent]

<Steps>
  <Step title="Terminer le travail">
    Terminez le travail dans l'espace de travail
  </Step>

  <Step title="Vérifier les modifications">
    Sélectionnez **Task Changes** dans le panneau central pour vérifier toutes les modifications
  </Step>

  <Step title="Rebaser vers la branche principale">
    Sélectionnez **Workspace Actions → Rebase to main branch** dans la barre d'espace de travail
  </Step>

  <Step title="Résoudre les conflits">
    Résolvez les éventuels conflits signalés
  </Step>

  <Step title="Vérifier">
    Vérifiez les modifications avant de confirmer
  </Step>
</Steps>

### Maintenir les espaces de travail à jour [#maintenir-les-espaces-de-travail-à-jour]

Utilisez **Workspace Actions → Sync with main branch** pour récupérer les dernières modifications de la branche principale dans votre espace de travail. Cela permet d'éviter des conflits importants lors du rebase.

***

## Bonnes pratiques [#bonnes-pratiques]

### Conventions de nommage [#conventions-de-nommage]

| Pratique                      | Exemple                                            |
| ----------------------------- | -------------------------------------------------- |
| Noms descriptifs              | `feature-auth`, `bugfix-123`, `experiment-caching` |
| Inclure les numéros de ticket | `JIRA-456-user-login`                              |
| Garder des noms courts        | Évitez les noms trop longs                         |

### Maintenance des espaces de travail [#maintenance-des-espaces-de-travail]

| Pratique                                                 | Pourquoi                                      |
| -------------------------------------------------------- | --------------------------------------------- |
| **Supprimer les espaces de travail rebasés**             | Libérer de l'espace disque                    |
| **Retirer les expérimentations abandonnées**             | Garder une liste d'espaces de travail gérable |
| **Maintenir un nombre raisonnable d'espaces de travail** | Les ressources système sont limitées          |

### Hygiène Git [#hygiène-git]

| Pratique                                    | Pourquoi                                                                     |
| ------------------------------------------- | ---------------------------------------------------------------------------- |
| **Commiter fréquemment**                    | Committez le travail en cours avant de basculer                              |
| **Petits commits**                          | Les commits plus petits sont plus faciles à cherry-pick                      |
| **Synchroniser régulièrement avec la base** | Ne laissez pas les espaces de travail trop diverger de la branche principale |
| **Réduire la complexité des conflits**      | Une intégration régulière évite les conflits importants                      |

***

## FAQ [#faq]

<AccordionGroup>
  <Accordion title="Quel espace disque utilise chaque espace de travail ?">
    Chaque espace de travail duplique les fichiers de travail mais partage le répertoire `.git`. L'utilisation d'espace correspond approximativement à la taille de votre projet par espace de travail. Les projets volumineux avec de nombreux espaces de travail en parallèle utiliseront un espace disque important.
  </Accordion>

  <Accordion title="Puis-je supprimer un espace de travail ?">
    Oui. Supprimez l'espace de travail via Verdent. Cela supprime le répertoire mais préserve tout travail committé sur la branche.
  </Accordion>

  <Accordion title="Que se passe-t-il pour les modifications non committées si je supprime un espace de travail ?">
    Les modifications non committées sont perdues lorsqu'un espace de travail est supprimé. Committez ou remisez toujours vos modifications avant de supprimer un espace de travail.
  </Accordion>

  <Accordion title="Puis-je convertir un espace de travail en espace de travail de base ?">
    Il n'existe pas de conversion directe, mais vous pouvez rebaser toutes les modifications de l'espace de travail vers la branche principale, puis supprimer l'espace de travail. L'historique de la branche est préservé.
  </Accordion>

  <Accordion title="Les worktrees fonctionnent-ils avec tous les services d'hébergement git ?">
    Oui. Les worktrees Git sont une fonctionnalité git standard. Ils fonctionnent avec GitHub, GitLab, Bitbucket, et tout autre service d'hébergement git.
  </Accordion>
</AccordionGroup>
