Próbowałem poszukać specjalnego polecenia Git, ale nie mogłem go znaleźć. Czy jest coś krótszego lub szybszego niż poniższe?
git branch | awk '/\*/ { print $2; }'
Próbowałem poszukać specjalnego polecenia Git, ale nie mogłem go znaleźć. Czy jest coś krótszego lub szybszego niż poniższe?
git branch | awk '/\*/ { print $2; }'
Odpowiedzi:
$ git rev-parse --abbrev-ref HEAD
master
Powinno to działać z Git 1.6.3 lub nowszym.
HEAD
, nie oczekujemaster
W Git 1.8.1 możesz użyć polecenia git symbolic-ref z opcją „--short”:
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
fatal: ref HEAD is not a symbolic ref
Występuje błąd podczas uruchamiania tego w ramach kompilacji
Z Git 2.22 (Q2 2019), trzeba będzie prostsze podejście: git branch --show-current
.
Zobacz commit 0ecb1fc (25 października 2018) autor: Daniels Umanovskis ( umanovskis
) .
(Połączone przez Junio C Hamano - gitster
- w commit 3710f60 , 07 marca 2019)
branch
:--show-current
wprowadź opcję wyświetlaniaPo wywołaniu za pomocą
--show-current
,git branch
wydrukuje bieżącą nazwę oddziału i zakończy działanie.
Drukowane jest tylko rzeczywiste imię, bezrefs/heads
.
W stanie odłączonym HEAD nic nie jest wyprowadzane.Przeznaczony zarówno do skryptów, jak i do interaktywnego / informacyjnego użytku.
W przeciwieństwie do tegogit branch --list
, aby uzyskać nazwę oddziału, nie jest wymagane filtrowanie.
Możesz być zainteresowany produkcją
git symbolic-ref HEAD
W szczególności, w zależności od potrzeb i układu, które możesz chcieć zrobić
basename $(git symbolic-ref HEAD)
lub
git symbolic-ref HEAD | cut -d/ -f3-
i znowu jest .git/HEAD
plik, który może Cię również zainteresować.
git rev-parse --symbolic-full-name
do git symbolic-ref
.
basename
lub cut
; use BR=${BR#refs/heads/}
(gdzie BR jest nazwą zmiennej, z której zapisałeś dane wyjściowe git symbolic-ref HEAD
).
git symbolic-ref --short HEAD
też zrobić
Z tego, co mogę powiedzieć, nie ma sposobu, aby natywnie pokazać tylko bieżącą gałąź w Git, więc używałem:
git branch | grep '*'
grep '*'
jest nominalnie błędem składni. Prawdopodobnie i git branch | sed -n 's/^\* //p'
tak chcesz . A właściwie to, co opublikował PO, co oznacza to samo.
grep '*'
nominalnie jest to błąd składniowy?
'*'
to wyrażenie regularne i jako takie jest nieprawidłowe. Prawdopodobnie chcesz użyć '[*]'
(czyli znak *
zamiast operatora „zero lub więcej razy”).
grep '\*'
git branch | grep "*" | cut -d' ' -f2
Myślę, że powinno to być szybkie i może być używane z API Pythona:
git branch --contains HEAD
* master
używam
/etc/bash_completion.d/git
Przyszedł z Git i zawiera monit z nazwą gałęzi i uzupełnieniem argumentów.
$ source /etc//bash_completion.d/git-prompt
nazwa pliku może być różna w różnych systemach. (Uwaga: source
słowo kluczowe jest takie samo jak po prostu .
(kropka) w bash.)
Dla pełności, echo $(__git_ps1)
przynajmniej w Linuksie, powinien podać nazwę bieżącej gałęzi otoczoną nawiasami.
Może to być przydatne w niektórych scenariuszach, ponieważ nie jest to polecenie Git (w zależności od Git), w szczególności do skonfigurowania wiersza polecenia Bash do wyświetlania bieżącej gałęzi .
Na przykład:
/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>
Ktoś może uznać to ( ) za pomocne. Bieżąca gałąź jest oznaczona *.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