J'ai essayé de chercher une commande spéciale pour cela mais je n'ai pas pu en trouver. Quelqu'un peut-il suggérer quelque chose de plus court ou plus rapide que:
git branch | awk '/\*/ { print $2; }'
$ git rev-parse --abbrev-ref HEAD
master
Cela devrait fonctionner avec Git 1.6.3 ou plus récent.
Dans Git 1.8.1, vous pouvez utiliser la commande git symbolic-ref avec l'option "--short":
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
Vous pouvez être intéressé par la sortie de
git symbolic-ref HEAD
En particulier, selon vos besoins et votre mise en page, vous voudrez peut-être faire
basename $(git symbolic-ref HEAD)
ou
git symbolic-ref HEAD | cut -d/ -f3-
et puis il y a le fichier .git/HEAD
qui peut aussi vous intéresser.
Avec Git 2.22 (T2 2019), vous aurez une approche plus simple: git branch --show-current
.
Voir commit 0ecb1fc (25 octobre 2018) par Daniels Umanovskis (umanovskis
) .
(Fusionnée par Junio C Hamano - gitster
- dans commit 3710f6 , 07 mars 2019)
branch
: introduit l'option d'affichage--show-current
Lorsqu'il est appelé avec
--show-current
,git branch
imprime le nom de la branche actuelle et se termine.
Seul le nom réel est imprimé, sansrefs/heads
.
Dans l’état détaché HEAD, rien n’est émis.Destiné à la fois à l'utilisation de scripts et à une utilisation interactive/informative.
Contrairement àgit branch --list
, aucun filtrage n'est nécessaire pour obtenir simplement le nom de la branche.
C'est un vieux fil sur lequel je viens de tomber. D'après ce que je peux dire, il n'y a aucun moyen de montrer nativement seulement la branche actuelle dans GIT, donc j'ai utilisé:
#> git branch | grep '*'
Je suppose que cela devrait être rapide et peut être utilisé avec python API.
git branch --contains HEAD
* master
J'utilise
/etc/bash_completion.d/git
Il est venu avec git et fournit une invite avec le nom de la branche et la complétion des arguments.
Ce n'est pas plus court, mais cela concerne aussi les branches détachées:
git branch | awk -v FS=' ' '/\*/{print $NF}' | sed 's|[()]||g'
Pour être complet, echo $(__git_ps1)
, sous Linux au moins, devrait vous donner le nom de la branche actuelle entourée de parenthèses.
Cela peut être utile dans certains scénarios car il ne s'agit pas d'une commande git (bien que cela dépende de git), notamment pour configurer votre commande bash Invite à afficher la branche actuelle.
Par exemple:
/mnt/c/git/ConsoleApp1 (test-branch)>echo $(__git_ps1)
(test-branch)
/mnt/c/git/ConsoleApp1 (test-branch)>git checkout master
Switched to branch 'master'
/mnt/c/git/ConsoleApp1 (master)>echo $(__git_ps1)
(master)
/mnt/c/git/ConsoleApp1 (master)>cd ..
/mnt/c/git>echo $(__git_ps1)
/mnt/c/git>
Le simple fait d'utiliser git branch
fonctionne pour moi.
Version Git: 2.13.2