Nom |
Description |
branch |
Ce paramètre permet d'indiquer une branche vers laquelle basculer. |
new-branch |
Ce paramètre permet d'indiquer le nom de la nouvelle branche. |
start-point |
Ce paramètre permet d'indiquer le point de départ de la nouvelle branche. Spécifier un start-point vous permet de créer une branche basée sur un autre point de l'historique que celui où HEAD pointe actuellement. (Ou, dans le cas de --detach, vous permet d'inspecter et de vous détacher d'un autre point.)
Vous pouvez utiliser la syntaxe @ {- N} pour faire référence à la N-ième dernière branche / commit commutée en utilisant l'opération «git switch» ou «git checkout». Vous pouvez également spécifier - qui est synonyme de @ {- 1}. Ceci est souvent utilisé pour basculer rapidement entre deux branches ou pour annuler un changement de branche par erreur.
Comme cas particulier, vous pouvez utiliser A ... B comme raccourci pour la base de fusion de A et B s'il y a exactement une base de fusion. Vous pouvez omettre au plus l'un des points A et B, auquel cas il est défini par défaut sur HEAD. |
-c new-branch |
Ce paramètre permet de créer une nouvelle branche nommée new-branch à partir de start-point avant de passer à la branche. |
-C new-branch |
Ce paramètre permet de créer une nouvelle branche sauf que si new-branch existe déjà, alors il sera réinitialisé à start-point. |
--conflict=style |
Ce paramètre permet de forcer la fusion, mais modifie la présentation des éléments en conflit, en remplaçant la variable de configuration merge.conflictStyle. Les valeurs possibles sont merge (par défaut) et diff3 (en plus de ce qui est indiqué par le style merge, affiche le contenu d'origine). |
--create new-branch |
Ce paramètre permet de créer une nouvelle branche nommée new-branch à partir de start-point avant de passer à la branche. |
-d |
Ce paramètre permet de passer à un commit pour l'inspection et les expériences jetables. |
--detach |
Ce paramètre permet de passer à un commit pour l'inspection et les expériences jetables. |
--discard-changes |
Ce paramètre permet de continuer même si l'index ou l'arborescence de travail diffère de HEAD. L'index et l'arborescence de travail sont restaurés pour correspondre à la cible de git switch. Si --recurse-submodules est spécifié, le contenu du sous-module est également restauré pour correspondre à la cible de git switch. Il est utilisé pour rejeter les changements locaux. |
-f |
Ce paramètre permet de continuer même si l'index ou l'arborescence de travail diffère de HEAD. L'index et l'arborescence de travail sont restaurés pour correspondre à la cible de git switch. Si --recurse-submodules est spécifié, le contenu du sous-module est également restauré pour correspondre à la cible de git switch. Il est utilisé pour rejeter les changements locaux. |
--force |
Ce paramètre permet de continuer même si l'index ou l'arborescence de travail diffère de HEAD. L'index et l'arborescence de travail sont restaurés pour correspondre à la cible de git switch. Si --recurse-submodules est spécifié, le contenu du sous-module est également restauré pour correspondre à la cible de git switch. Il est utilisé pour rejeter les changements locaux. |
--force-create new-branch |
Ce paramètre permet de créer une nouvelle branche sauf que si new-branch existe déjà, alors il sera réinitialisé à start-point. |
--guess |
Ce paramètre permet, si branch n'est pas trouvé mais qu'il existe une branche de suivi dans exactement à distance (appelez remote) avec un nom correspondant, traiter comme équivalent à «git switch -c branch --track remote/branch».
Si la branche existe dans plusieurs à distances et que l'une d'elles est nommée par la variable de configuration checkout.defaultRemote, vous l'utilisez à des fins de clarification,
même si le branch n'est pas unique sur toutes ceux à distances. Réglez-le sur par exemple sur checkout.defaultRemote=origin pour toujours extraire les branches à distances à
partir de là si branch est ambigu mais existe sur l'origine à distance. |
--ignore-other-worktrees |
Ce paramètre permet de vérifier la référence de toute façon. La commande git switch refuse lorsque la référence recherchée est déjà extraite par un autre arbre de travail. En d'autres termes, la référence peut être détenue par plus d'un arbre de travail. |
-m |
Ce paramètre permet d'indiquer que si vous avez des modifications locales à un ou plusieurs fichiers étant différentes entre la branche courante et la branche vers laquelle vous basculez, la commande refuse de changer de branche afin de conserver vos modifications en contexte. Cependant, avec cette option, une fusion à trois voies entre la branche actuelle, le contenu de votre arbre de travail et la nouvelle branche est effectuée, et vous serez sur la nouvelle branche. Lorsqu'un conflit de fusion se produit, les entrées d'index pour les chemins en conflit ne sont pas fusionnées et vous devez résoudre les conflits et marquer les chemins résolus avec git add (ou git rm si la fusion doit entraîner la suppression du chemin). |
--merge |
Ce paramètre permet d'indiquer que si vous avez des modifications locales à un ou plusieurs fichiers étant différentes entre la branche courante et la branche vers laquelle vous basculez, la commande refuse de changer de branche afin de conserver vos modifications en contexte. Cependant, avec cette option, une fusion à trois voies entre la branche actuelle, le contenu de votre arbre de travail et la nouvelle branche est effectuée, et vous serez sur la nouvelle branche. Lorsqu'un conflit de fusion se produit, les entrées d'index pour les chemins en conflit ne sont pas fusionnées et vous devez résoudre les conflits et marquer les chemins résolus avec git add (ou git rm si la fusion doit entraîner la suppression du chemin). |
--no-guess |
Ce paramètre permet de désactiver le comportement du paramètre --guess. |
--no-progress |
Ce paramètre permet d'interdire l'affichage de la progression. |
--no-recurse-submodules |
Ce paramètre permet de pas mettre à jour le contenu de tous les sous-modules actifs en fonction du commit enregistré dans le superprojet. |
--no-track |
Ce paramètre permet de ne pas configurer la configuration en amont, même si la variable de configuration branch.autoSetupMerge est true. |
--orphan new-branch |
Ce paramètre permet de créer une nouvelle branche orpheline, nommée new-branch. Tous les fichiers de suivis sont supprimés. |
--progress |
Ce paramètre permet d'indiquer le rapport de progression même s'il n'est pas connecté à un terminal, quel que soit --quiet. L'état de progression est signalé par défaut sur le flux d'erreur standard lorsqu'il est connecté à un terminal, sauf si --quiet est spécifié. |
-q |
Ce paramètre permet d'enlever et supprimer les messages de rétroaction. |
--quiet |
Ce paramètre permet d'enlever et supprimer les messages de rétroaction. |
--recurse-submodules |
Ce paramètre permet de mettre à jour le contenu de tous les sous-modules actifs en fonction du commit enregistré dans le superprojet. Si rien (ou --no-recurse-submodules) n'est utilisé, les arborescences de travail des sous-modules ne seront pas mises à jour. Tout comme la commande git submodule, elle détachera HEAD des sous-modules. |
-t |
Ce paramètre permet de configurer la configuration en amont lors de la création d'une nouvelle branche. Le paramètre -c est implicite. Si aucun paramètre -c n'est donnée, le nom de la nouvelle branche sera dérivé de la branche de suivi à distance, en regardant la partie locale du refspec configuré pour à distance correspondante, puis en dépouillant la partie initiale jusqu'au "*". Cela nous indiquerait d'utiliser hack comme branche locale lors de la dérivation origin/hack (ou remotes/origin/hack, ou même refs/remotes/origin/hack). Si le nom donné n'a pas de barre oblique, ou si la supposition ci-dessus aboutit à un nom vide, la supposition est abandonnée. Vous pouvez explicitement donner un nom avec -c dans un tel cas. |
--track |
Ce paramètre permet de configurer la configuration en amont lors de la création d'une nouvelle branche. Le paramètre -c est implicite. Si aucun paramètre -c n'est donnée, le nom de la nouvelle branche sera dérivé de la branche de suivi à distance, en regardant la partie locale du refspec configuré pour à distance correspondante, puis en dépouillant la partie initiale jusqu'au "*". Cela nous indiquerait d'utiliser hack comme branche locale lors de la dérivation origin/hack (ou remotes/origin/hack, ou même refs/remotes/origin/hack). Si le nom donné n'a pas de barre oblique, ou si la supposition ci-dessus aboutit à un nom vide, la supposition est abandonnée. Vous pouvez explicitement donner un nom avec -c dans un tel cas. |
Cette commande permet de changer de branche.
Après avoir travaillé dans la mauvaise branche, le passage à la bonne branche se ferait en utilisant si votre branche s'appelle gladir :
Après cette fusion à trois, les modifications locales ne sont pas enregistrées dans votre fichier d'index, donc git diff vous montrerait
les modifications que vous avez apportées depuis la pointe de la nouvelle branche. Pour revenir à la branche précédente avant de basculer vers
gladir (par exemple la branche master) :
Vous pouvez développer une nouvelle branche à partir de n'importe quel commit. Par exemple, passez à "HEAD~3" et créez la branche fixup :
S'il s'avère que tout ce que vous avez fait vaut la peine d'être conservé, vous pouvez toujours lui créer un nouveau nom (sans changer de nom) :