Git worktree : plusieurs branches ouvertes à la fois

Guide git worktree

Git worktree : add, list, remove et prune, avec exemples | We.Inc

Générez la commande git worktree add exacte pour une nouvelle branche, une branche existante ou un commit détaché, puis listez, verrouillez, déplacez, supprimez et nettoyez vos worktrees en toute sécurité.

git worktree permet à un même dépôt d'avoir plusieurs dossiers de travail, chacun sur sa propre branche, qui partagent un seul stock d'objets. Lancez git worktree add ../hotfix -b hotfix pour créer un nouveau dossier sur une nouvelle branche, git worktree list pour les voir tous, et git worktree remove ../hotfix quand vous avez terminé. Pas besoin d'un second clone.

Les commandes worktree dont vous avez besoin au quotidien

Faire un stash, changer de branche et tout recompiler chaque fois qu'on vous demande un correctif rapide fait perdre du temps. Un worktree vous donne une seconde copie de travail du même dépôt dans un autre dossier, si bien qu'une longue série de tests, une revue de code et un patch urgent peuvent chacun vivre dans leur propre répertoire. Utilisez le générateur pour obtenir les commandes, puis consultez la référence pour les sous-commandes plus rares.

Questions fréquentes

Quelle est la différence entre un worktree et un clone ?

Un clone copie tout le dépôt, historique compris. Un worktree lié partage les objets et les refs du dépôt d'origine et n'ajoute qu'un nouveau dossier de travail avec quelques métadonnées, si bien que les commits faits dans l'un sont immédiatement visibles depuis les autres, sans fetch.

Deux worktrees peuvent-ils utiliser la même branche ?

Pas par défaut. git worktree add refuse une branche déjà extraite ailleurs, car deux dossiers qui font avancer une même branche écraseraient mutuellement leur travail. --force passe outre, mais un HEAD détaché ou une seconde branche est presque toujours le meilleur choix.

Pourquoi git worktree remove échoue-t-il ?

La commande refuse quand le dossier contient des fichiers suivis modifiés ou des fichiers non suivis, pour que vous ne perdiez pas de travail. Faites d'abord un commit ou nettoyez le dossier, ou passez --force. Un worktree verrouillé demande --force deux fois.

Que fait git worktree prune ?

Elle supprime les enregistrements résiduels que git conserve pour les worktrees dont les dossiers n'existent plus, par exemple après en avoir supprimé un avec rm -rf. Ajoutez -n pour voir d'abord ce qu'elle supprimerait.

Comment renommer ou déplacer un dossier de worktree ?

Utilisez git worktree move <worktree> <new-path> pour que git mette à jour ses enregistrements. Si vous l'avez déjà déplacé avec le gestionnaire de fichiers, lancez git worktree repair depuis le nouvel emplacement pour le reconnecter.

Les bonnes raisons d'utiliser des worktrees

Ce qui est partagé et ce qui ne l'est pas

Toutes les sous-commandes de git worktree

Les sous-commandes de git worktree et leur syntaxe

Un hotfix sans quitter votre branche

Corriger la production pendant qu'une fonctionnalité est à moitié faite

Votre dossier de fonctionnalité reste exactement tel quel. Le correctif vit dans un dossier voisin et est supprimé une fois poussé.

Lister les worktrees dans un format adapté aux scripts

Chaque worktree est un bloc de lignes séparé par une ligne vide : son chemin, le hash de son HEAD et sa branche (ou detached).

Générateur de commandes worktree

Dossier du worktree

Nom de la branche

Partir de (branche, tag ou commit)

Ce qu'il faut extraire

Nouvelle branche

Branche existante

Commit détaché

Le créer et l'ouvrir

Quand vous avez terminé

Saisissez un chemin de dossier pour voir les commandes.

Astuce : un chemin commençant par ../ place le nouveau dossier à côté de votre copie de travail principale.

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site