3147 votes

Comment obtenir de l'actuel nom de la branche dans Git?

Je suis d'une Subversion de fond et quand vous avez eu une branche, vous saviez ce que vous travailliez avec "Ces fichiers de travail point de cette branche". Mais avec Git, je ne suis pas sûr quand je suis à l'édition d'un fichier dans NetBeans ou Notepad++, si c'est lié au maître ou d'une autre succursale.

Il n'y a pas de problème avec l' git de bash, il vous dit ce que vous faites.

4758voto

Jistanidiot Points 10186
git rev-parse --abbrev-ref HEAD

Qui permettra d'afficher la branche courante

3242voto

roberttdev Points 3328

"git branch" doit afficher toutes les branches locales de votre pension. Le chef étoilé de la branche est de votre branche courante.

558voto

Wernight Points 6086

Vous avez également git symbolic-ref HEAD qui affiche le plein refspec.

Note:

$ git symbolic-ref --short HEAD

ne fonctionne pas en pré-1.8 clients. (RHEL6 est actuellement sur v1.7) – Greg 13. Mai 2013

Sur une version antérieure du client, cela semble fonctionner:

$ git symbolic-ref HEAD | sed -e "s/^refs\/heads\///"

Darien 26. Mar 2014

298voto

Stefaan Points 791

Pour ma propre référence (mais il pourrait être utile à d'autres), j'ai fait une vue d'ensemble de la plupart de base (ligne de commande) techniques mentionnées dans ce thread, chaque appliqué à plusieurs cas d'utilisation: la TÊTE est (pointer):

  • de la succursale locale (master)
  • suivi à distance de la branche, en synchronisation avec la branche locale (origin/master à même de s'engager en tant que maître)
  • suivi à distance de la branche, pas en synchronisation avec une agence locale (origine/fonction-foo)
  • tag (v1.2.3)
  • général détaché de la tête (aucune des réponses ci-dessus)

Résultats:

  • git branch | sed -n '/\* /s///p'
    • la section locale: master
    • suivi à distance de la branche (synchronisation): (detached from origin/master)
    • suivi à distance de la branche (pas de synchronisation): (detached from origin/feature-foo)
    • tag: (detached from v1.2.3)
    • général détaché de la tête: (detached from 285f294)
  • git status | head -1
    • la section locale: # On branch master
    • suivi à distance de la branche (synchronisation): # HEAD detached at origin/master
    • suivi à distance de la branche (pas de synchronisation): # HEAD detached at origin/feature-foo
    • tag: # HEAD detached at v1.2.3
    • général détaché de la tête: # HEAD detached at 285f294
  • git describe --all
    • la section locale: heads/master
    • suivi à distance de la branche (synchronisation): heads/master (note: pas d' remotes/origin/master)
    • suivi à distance de la branche (pas de synchronisation): remotes/origin/feature-foo
    • tag: v1.2.3
    • général détaché de la tête: v1.0.6-5-g2393761
  • cat .git/HEAD:
    • la section locale: ref: refs/heads/master
    • tous les autres cas d'utilisation: le SHA de la validation correspondante
  • git rev-parse --abbrev-ref HEAD
    • la section locale: master
    • tous les autres cas d'utilisation: HEAD
  • git symbolic-ref --short HEAD
    • la section locale: master
    • tous les autres cas d'utilisation: fatal: ref HEAD is not a symbolic ref

(Pour info cela a été fait avec la version git 1.8.3.1)

93voto

Olivier Refalo Points 12606

Bien assez simple, je l'ai eu en une seule ligne (bash)

git branch | sed -n '/\* /s///p'

(crédit: l'Expiation Limitée)

Et pendant que je suis là, l'un liner pour obtenir le suivi à distance de la branche (le cas échéant)

git rev-parse --symbolic-full-name --abbrev-ref @{u}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X