La création de branches est un exercice trivial dans Git. Malheureusement, les tâches triviales reçoivent rarement l’attention qu’elles méritent, et des erreurs se produisent. Si vous avez mal nommé une branche, il faudra la renommer. Voici comment faire.
Pourquoi les noms de branches sont importants dans Git
Dans les systèmes de contrôle de version (VCS) classiques, tout ce qui concernait les branches était un gros problème. Il fallait une compréhension coordonnée du fait qu’une branche était ajoutée ou fusionnée, et toutes les personnes utilisant ce dépôt devaient s’assurer qu’elles ne faisaient rien – ou oubliaient de faire quelque chose – pour que l’opération se déroule et réussisse.
Les opérations impliquant des branches étaient souvent très lentes, aussi. Il y avait une pénalité de temps pour l’utilisation des branches. Git a été conçu dès le départ pour être différent. Parce que c’est un système de contrôle de version distribué, chaque utilisateur dispose d’une copie du dépôt complet sur sa machine locale.
Créer une branche sur votre machine locale n’affecte personne d’autre à moins que vous ne poussiez la branche vers un dépôt distant. Et dans Git, les opérations de branchement sont conçues pour être aussi faciles à utiliser que rapides à réaliser. Le branchement dans Git est très peu coûteux en termes de calcul. Il s’agit d’une action triviale à l’intérieur du dépôt local.
En fait, les développeurs sont encouragés à se brancher, et à se brancher souvent. Les branches ne sont qu’un outil de plus dans votre VCS dont vous bénéficiez. Les branches ne sont pas de grandes choses effrayantes dans Git, elles sont l’une de ses fonctionnalités les plus utilisées.
Mais la familiarité peut conduire au mépris. Ou, du moins, à un regard désinvolte sur les branches. La création de branches peut être rapide et simple dans Git, mais vous devez quand même être concentré lorsque vous créez une branche. Il est facile de se tromper de nom de branche, ou de taper le mauvais nom, ce qui donne une branche mal nommée.
Si la branche doit être poussée vers le dépôt distant à un moment donné, elle doit être correctement orthographiée. Si ce n’est pas le cas, il y aura confusion lorsque d’autres personnes essaieront de l’utiliser.
Git rebase : Tout ce que vous devez savoir
Lister les branches dans Git avant de les renommer
Vérifier quels sont les noms des branches actuelles est une bonne première étape. La commande git branch liste les branches pour nous. Vous pouvez voir les branches dans le dépôt local avec cette commande :
git branch
Lister les branches locales à l’aide de la commande git branch
Les branches sont listées pour nous. La branche courante est surlignée en vert, et avec un astérisque.
Pour voir les branches et leurs commits, vous pouvez utiliser la commande show-branch.
git show-branch
Lister les branches et leurs commits avec la commande git show-branch
Vous pouvez voir les branches sur le dépôt distant en incluant l’option -r (remote).
git branch -r
Liste des branches distantes avec la commande git branch -r
Pour voir les branches locales et distantes avec une seule commande, utilisez l’option -a (all).
git branch -a
Lister les branches locales et distantes avec la commande git branch -a
Nous avons plus de branches locales que de branches distantes. La branche « feature16 » n’a pas encore été poussée vers le dépôt distant. C’est juste un aspect du fonctionnement normal, pas un problème.
Notre problème est que la branche « feature19 » aurait dû être nommée « feature18 ». C’est donc cette erreur que nous allons corriger.
Comment renommer une branche locale dans Git ?
Il y a deux façons de renommer une branche localement. Vous pouvez extraire la branche et la renommer, ou vous pouvez renommer la branche pendant que vous travaillez sur une autre branche.
Pour renommer la branche courante, assurez-vous que vous avez extrait et que vous utilisez la branche que vous voulez renommer. Utilisez ensuite la commande git branch avec l’option -m (move).
git checkout feature19
git branch -m feature18
Extraction de la branche « feature19 » et renommage de celle-ci
Nous avons extrait la branche « feature19 » et l’avons renommée en « feature18 ». Voyons à quoi ressemblent nos branches maintenant.
git branch
Liste des branches pour vérifier que la branche « feature19 » a été renommée en « feature18 ».
Notre branche a maintenant le nom correct dans le dépôt local.
Si vous le souhaitez, vous pouvez renommer une branche lorsque vous travaillez dans une autre branche. Voici un exemple où nous travaillons dans la branche « master ».
git branch
Liste des branches pour vérifier que nous sommes sur la branche master
La commande que nous utilisons est la même que précédemment, mais nous devons fournir le nom actuel de la branche que nous renommons, ainsi que le nouveau nom que nous voulons lui donner.
git branch -m feature19 feature18
git branch
Renommer une branche à partir d’une autre branche
Encore une fois, la branche dans notre dépôt local a été renommée avec le nom correct.
Comment renommer une branche distante dans Git ?
Le dépôt distant contient toujours la branche avec l’ancien nom. Pour renommer une branche distante, il faut supprimer l’ancienne branche et pousser la nouvelle branche.
Si d’autres utilisateurs utilisent cette branche et y poussent des commits, vous devriez faire un pull avant de la renommer localement. Cela garantit que votre dépôt local est à jour et que les modifications apportées par les autres utilisateurs ne seront pas perdues. En retirant leurs changements de votre dépôt avant de renommer la branche localement, ces changements seront dans la nouvelle branche lorsque vous la repousserez vers le dépôt distant.
Jetons un coup d’oeil à l’état de nos branches. Nous allons utiliser l’option -a (all) pour voir à la fois les branches locales et distantes.
git branch -a
Liste des branches locales et distantes avec la commande git branch -a
Nous devons supprimer « feature19 » du dépôt distant, et pousser « feature18 » vers le dépôt distant.
git push origin –delete feature19
Suppression d’une branche distante avec l’option git –delete
Le mot de passe du dépôt distant vous sera demandé. Une fois que la suppression a eu lieu, vous verrez un message de confirmation.
Maintenant nous allons pousser notre nouvelle branche vers le dépôt distant, et utiliser l’option -u (set upstream)
git push origin -u feature18
Pousser une branche vers le dépôt distant
Encore une fois, le mot de passe pour le dépôt distant vous sera demandé. La nouvelle branche est poussée vers le dépôt distant, et on nous dit que la branche « feature18 » est configurée pour suivre les changements dans notre copie locale de la branche.
Vérifions une fois de plus dans quel état se trouvent nos branches locales et distantes.
git branch -a
Liste des branches locales et distantes avec la commande git branch -a
Notre branche a été renommée avec succès à la fois localement et à distance, et la branche distante suit les changements de notre branche locale.
Renommer les branches est simple
Avec Git, renommer des branches est simple. Si vous êtes la seule personne qui utilise un dépôt ou une branche à renommer, c’est très simple.
Si d’autres personnes partagent la branche, assurez-vous de leur communiquer que vous allez renommer la branche, et qu’ils doivent pousser tout travail non engagé. Une fois qu’ils ont poussé, vous pouvez retirer la branche, puis renommer votre branche localement et à distance.