Après avoir créé, fusionné et effacé des branches, regardons de plus près les outils de gestion de branche qui s'avèreront utiles lors d'une utilisation intensive des branches.
La commande git branch
fait plus que créer et effacer des branches.
Si vous la lancez sans argument, vous obtenez la liste des branches courantes :
$ git branch
prob53
* master
test
Notez le caractère *
qui préfixe la branche master
.
Ce caractère indique la branche qui est actuellement extraite.
Ceci signifie que si vous validez des modifications, la branche master
avancera avec votre travail.
Pour visualiser les dernières validations sur chaque branche, vous pouvez lancer le commande git branch -v
:
$ git branch -v
prob53 93b412c fix javascript issue
* master 7a98805 Merge branch 'prob53'
test 782fd34 add scott to the author list in the readmes
D'autres options permettent de voir l'état des branches en filtrant cette liste par les branches qui ont ou n'ont pas encore été fusionnées dans la branche courante.
Ce sont les options --merged
et --no-merged
.
Pour voir quelles branches ont déjà été fusionnées dans votre branche actuelle, lancez git branch --merged
:
$ git branch --merged
prob53
* master
Comme vous avez déjà fusionné prob53
auparavant, vous la voyez dans votre liste.
Les branches de cette liste qui ne comportent pas l'étoile en préfixe peuvent généralement être effacées sans risque au moyen de git branch -d
; vous avez déjà incorporé leurs modifications dans une autre branche et n'allez donc rien perdre.
Lancez git branch --no-merged
pour visualiser les branches qui contiennent des travaux qui n'ont pas encore été fusionnés :
$ git branch --no-merged
test
Ceci montre votre autre branche.
Comme elle contient des modifications qui n'ont pas encore été fusionnées, un essai d'effacement par git branch -d
se solde par un échec :
$ git branch -d test
error: The branch 'test' is not an ancestor of your current HEAD.
If you are sure you want to delete it, run 'git branch -D test'.
Si vous souhaitez réellement effacer cette branche et perdre ainsi le travail réalisé, vous pouvez forcer l'effacement avec l'option -D
, comme l'indique justement le message.