J'ai essayé de chercher une commande Git spéciale pour cela, mais je n'en ai pas trouvé. Y a-t-il quelque chose de plus court ou plus rapide que ce qui suit?
git branch | awk '/\*/ { print $2; }'
J'ai essayé de chercher une commande Git spéciale pour cela, mais je n'en ai pas trouvé. Y a-t-il quelque chose de plus court ou plus rapide que ce qui suit?
git branch | awk '/\*/ { print $2; }'
Réponses:
$ git rev-parse --abbrev-ref HEAD
master
Cela devrait fonctionner avec Git 1.6.3 ou plus récent.
HEAD
pas prévumaster
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
fatal: ref HEAD is not a symbolic ref
lors de l'exécution de cela dans le cadre d'une version TravisCI
, Vous aurez une approche plus simple avec Git 2,22 (Q2 2019): git branch --show-current
.
Voir commit 0ecb1fc (25 octobre 2018) par Daniels Umanovskis ( umanovskis
) .
(Fusionné par Junio C Hamano - gitster
- dans commit 3710f60 , 07 mars 2019)
branch
: introduire l'--show-current
option d'affichageLorsqu'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 HEAD détaché, rien n'est sorti.Destiné à la fois à des scripts et à une utilisation interactive / informative.
Contrairement àgit branch --list
, aucun filtrage n'est nécessaire pour obtenir simplement le nom de la branche.
Vous pouvez être intéressé par la sortie de
git symbolic-ref HEAD
En particulier, en fonction de vos besoins et de la disposition que vous souhaitez faire
basename $(git symbolic-ref HEAD)
ou
git symbolic-ref HEAD | cut -d/ -f3-
et là encore il y a le .git/HEAD
dossier qui peut aussi vous intéresser.
git rev-parse --symbolic-full-name
à git symbolic-ref
.
basename
ou cut
; utiliser BR=${BR#refs/heads/}
(où BR est le nom de la variable dont vous avez enregistré la sortie git symbolic-ref HEAD
).
git symbolic-ref --short HEAD
aussi faire
D'après ce que je peux dire, il n'y a aucun moyen de montrer nativement juste la branche actuelle dans Git, donc j'ai utilisé:
git branch | grep '*'
grep '*'
c'est nominalement une erreur de syntaxe. Vous voulez probablement de git branch | sed -n 's/^\* //p'
toute façon. Ou en fait, ce que le PO a affiché en premier lieu, ce qui revient au même.
grep '*'
s'agit nominalement d'une erreur de syntaxe?
'*'
une expression régulière et en tant que telle, elle n'est pas valide. Vous voulez probablement utiliser '[*]'
(c'est-à-dire, un caractère *
au lieu de l'opérateur "zéro ou plusieurs fois").
grep '\*'
git branch | grep "*" | cut -d' ' -f2
Je suppose que cela devrait être rapide et peut être utilisé avec une API Python:
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.
$ source /etc//bash_completion.d/git-prompt
File peut être nommé différemment sur différents systèmes. (Remarque: le source
mot-clé est le même que juste .
(point) dans bash.)
Pour être complet, echo $(__git_ps1)
sur 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 (tout en dépendant de Git), notamment pour configurer votre invite de commande Bash pour 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>
Quelqu'un pourrait trouver cela ( ) utile. La branche actuelle est indiquée par une marque *.git show-branch
--current
host-78-65-229-191:idp-mobileid user-1$ git show-branch --current
! [CICD-1283-pipeline-in-shared-libraries] feat(CICD-1283): Use latest version of custom release plugin.
* [master] Merge pull request #12 in CORES/idp-mobileid from feature/fix-schema-name to master
--
+ [CICD-1283-pipeline-in-shared-libraries] feat(CICD-1283): Use latest version of custom release plugin.
+ [CICD-1283-pipeline-in-shared-libraries^] feat(CICD-1283): Used the renamed AWS pipeline.
+ [CICD-1283-pipeline-in-shared-libraries~2] feat(CICD-1283): Point to feature branches of shared libraries.
-- [master] Merge pull request #12 in CORES/idp-mobileid from feature/fix-schema-name to master