Sur macOS, supprimez un worktree lié terminé depuis le Terminal avec git worktree remove, mais vérifiez d'abord s'il contient des modifications dont vous avez encore besoin. Git supprime un worktree propre ; s'il contient des modifications, il s'arrête à moins que vous ne forciez la suppression. Pour conserver le travail non terminé, validez-le (commit) ou remisez-le (stash) avant de supprimer le répertoire. N'ajoutez pas --force simplement pour contourner l'avertissement de Git : cela peut supprimer les fichiers locaux du worktree. Ces étapes s'appliquent aux worktrees liés, pas au répertoire de travail principal du dépôt. Documentation Git sur worktree
1. Trouver le worktree et vérifier son état
Ouvrez le Terminal et rendez-vous dans le dépôt principal ou dans n'importe quel worktree lié appartenant au même dépôt. Pour afficher tous les chemins et branches de worktrees associés, exécutez :
git worktree list
Copiez le chemin exact du worktree terminé. Inspectez ensuite son état depuis l'intérieur de ce worktree, en mettant le chemin entre guillemets s'il contient des espaces :
cd "/path/to/finished-worktree"
git status --short --branch
La sortie de statut permet de révéler les fichiers suivis modifiés ou indexés (staged) ainsi que les fichiers non suivis. Vérifiez également le worktree dans le Finder pour repérer les fichiers locaux dont dépend votre flux de travail. Les fichiers ignorés par Git peuvent ne pas apparaître dans la sortie standard de statut. Si vous n'êtes pas certain que certains éléments du répertoire puissent être supprimés, arrêtez-vous avant la suppression et effectuez une sauvegarde distincte ou conservez le répertoire. Un Git worktree partage les données du dépôt avec son worktree principal, mais possède son propre checkout et son propre index ; supprimer le checkout n'est pas une opération de sauvegarde générale. Documentation Git worktree
2. Préserver les modifications que vous souhaitez conserver
Si le travail est prêt à être conservé dans le dépôt, validez-le (commit) sur la branche du worktree. Examinez d'abord le statut et le diff, puis indexez uniquement les fichiers que vous avez l'intention d'inclure et validez-les :
git diff
git add path/to/file
git commit -m "Describe the finished work"
Supprimez l'espace initial accidentel devant git commit si votre shell le traite de manière inattendue ; une forme propre est git commit -m "Describe the finished work". Un commit conserve les modifications dans l'historique Git, mais vérifiez qu'il se trouve sur la branche prévue avant de supprimer le worktree.
Si les modifications ne sont pas terminées, remisez (stash) plutôt les modifications suivies et les fichiers non suivis :
git stash push -u -m "Before removing finished worktree"
git stash list
L'option -u inclut les fichiers non suivis. Les fichiers ignorés ne sont pas inclus, veillez donc à préserver séparément toute configuration locale ignorée, tout fichier généré ou toute autre donnée nécessaire. Confirmez que le nouveau stash apparaît dans la liste avant de continuer. Les stashes appartiennent au dépôt, et vous pourrez plus tard appliquer les modifications enregistrées depuis un autre worktree avec git stash apply stash@{0} ; vérifiez d'abord le numéro de l'entrée, car des stashes ultérieurs peuvent modifier l'ordre de la liste. L'application d'un stash peut générer des conflits, inspectez donc le résultat avant de supprimer le stash. Documentation Git stash
3. Supprimer le worktree propre
Après avoir validé ou remisé les modifications nécessaires, quittez le répertoire cible et exécutez la commande de suppression depuis un autre worktree du même dépôt. Utilisez le chemin exact indiqué par git worktree list :
cd "/path/to/main-repository"
git worktree remove "/path/to/finished-worktree"
git worktree list
La seconde liste constitue une confirmation utile que Git ne répertorie plus ce checkout. Git indique dans sa documentation que remove n'accepte par défaut que des worktrees propres ; un fichier non suivi ou une modification apportée à un fichier suivi peut empêcher la suppression. Documentation Git worktree
Si la suppression signale que le worktree n'est pas propre, ne passez pas à git worktree remove --force à moins d'avoir décidé que chaque fichier local restant peut être supprimé sans regret. Retournez dans ce worktree, inspectez git status, et préservez d'abord les fichiers ou modifications restants. En particulier, stash n'inclut pas les fichiers ignorés, et un sous-module peut comporter ses propres modifications qui nécessitent une attention distincte.
Si vous avez déjà supprimé le dossier dans le Finder
Si vous avez supprimé un répertoire de worktree lié en dehors de Git, son enregistrement administratif peut persister. Depuis le dépôt principal, exécutez git worktree list et vérifiez si le chemin manquant est marqué comme prunable. Git fournit git worktree prune pour supprimer les enregistrements des worktrees dont les répertoires sont manquants ; cela ne restaure pas les fichiers de projet supprimés. Utilisez cette commande uniquement après avoir confirmé que le répertoire a réellement disparu et que vous n'avez pas besoin de son contenu. Pour les futurs nettoyages, utilisez git worktree remove afin que Git mette à jour les métadonnées du worktree dans le cadre de la suppression. Documentation Git worktree
Un nettoyage sûr se termine avec le checkout terminé supprimé, toutes les modifications que vous souhaitiez conserver validées ou remisées, et tous les fichiers locaux ignorés dont vous aviez besoin préservés séparément. Laissez le worktree en place chaque fois que vous ne pouvez pas vérifier que son contenu restant peut être ignoré.