Próbowałem szukać specjalnego polecenia git, ale nie mogłem go znaleźć. Czy ktoś może sugerować coś krótszy lub szybciej niż:Pokaż tylko bieżący oddział w Git
git branch | awk '/\*/ { print $2; }'
Próbowałem szukać specjalnego polecenia git, ale nie mogłem go znaleźć. Czy ktoś może sugerować coś krótszy lub szybciej niż:Pokaż tylko bieżący oddział w Git
git branch | awk '/\*/ { print $2; }'
$ git rev-parse --abbrev-ref HEAD
master
Powinno działać z Git 1.6.3 lub nowszym.
Nie działa również dla mnie, z git-1.6.2.5.git rev-parse --abbrev-ref HEAD => --abbrev-ref 311172491a9a667f9321bdf1c4fe5e22cc6e2c08 (np. rev-parse nie akceptuje --abbrev-ref (nie na stronie man)) – JasonWoof
JasonWoof, działa dla mnie w 1.6 .4.2, trzeba zmienić listę, aby zobaczyć, kiedy dokładnie to się stało ;-) –
O ile mogę powiedzieć z dzienników Git, ta funkcja została scalona w 2009-04-20 i została wydana w wersji 1.6.3. – earl
Używam
/etc/bash_completion.d/git
Przyszedł z git i zapewnia wiersz z nazwą oddziału i zakończenia argumentów.
Możesz być zainteresowany wyjściu
git symbolic-ref HEAD
W szczególności, w zależności od potrzeb i układ może chcesz zrobić
basename $(git symbolic-ref HEAD)
lub
git symbolic-ref HEAD | cut -d/ -f3-
a następnie znowu jest plik .git/HEAD
, który może być również dla Ciebie interesujący.
Możesz skrócić 'git rev-pars - -symbolic-full-name' do' git symbolic-ref'. – earl
Nie musisz używać 'nazwa-platformy' lub' cut'; użyj 'BR = $ {BR # refs/heads /}' (gdzie BR jest nazwą zmiennej zapisałeś wynik działania 'git symbolic-ref HEAD'). –
Jakub, oczywiście, że nie, pod warunkiem, że masz wyjście w zmiennej. –
To jest stary wątek, na którym się natknąłem. Z tego co wiem, nie ma sposobu, aby pokazać natywnie tylko bieżące oddział w GIT, więc używam:
#> git branch | grep '*'
Podczas gdy to działa z coreutils GNU,' grep '*' 'jest nominalnie błąd składni. Prawdopodobnie chcesz 'git branch | sed -n 's/^ \ * // p'' mimo to. Lub faktycznie, co PO opublikował w pierwszej kolejności, co oznacza to samo. – tripleee
@tripleee czy możesz mnie oświecić, dlaczego 'grep '*'' jest nominalnie błędem składni? –
Podobnie jak liczba mnoga * s * w języku angielskim nie ma żadnego użytecznego znaczenia na własną rękę, nie można powiedzieć "zero lub więcej razy" w izolacji bez czegoś przed nim. (Myślę, że pamiętałem, że dokumentacja GNU 'grep' wspomina konkretnie, że samotny' * 'na początku łańcucha jest interpretowany dosłownie, tj. Jako' [*] 'w ogólnym wyrażeniu regularnym, ale nie mogę znaleźć tego teraz udokumentowanego.) – tripleee
(nie mogę dodawać komentarze do odpowiedzi, więc)
w git 1.8.1 można użyć symboliczne-ref polecenie git z opcją „--short”:
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
Dzięki. Utworzono alias. –
Lepsza niż zaakceptowana odpowiedź IMO, ponieważ działa na repo bez zobowiązań –
Uzyskanie błędu 'fatal: ref HEAD nie jest symbolicznym ref' podczas uruchamiania tego jako część TravisCI build – kmanzana
Myślę, że to powinno być szybkie i może być używany z Pythona API.
git branch --contains HEAD
* master
myślę, że to jest fastes możliwy sposób, aby uzyskać prąd oddział – Eimantas
możliwy duplikat [Jak uzyskać bieżącą nazwę oddziału w Git?] (Http://stackoverflow.com/questions/6245570/how-to- get-current-branch-name-in-git) –
@ChandrayyaGK: Nie, ponieważ inne pytanie dotyczy robienia tego z poziomu twojego IDE. (Wiele odpowiedzi dotyczy użycia wiersza poleceń, więc warto się przyjrzeć, ale nie jest to odpowiedni duplikat, a te odpowiedzi powinny zostać przeniesione tutaj, jeśli są jakieś, które dodają znaczną wartość do tego, co już jest tutaj.) – tripleee