Я спробував знайти для цього спеціальну команду Git, але не зміг її знайти. Чи є щось коротше чи швидше, ніж наступне?
git branch | awk '/\*/ { print $2; }'
Я спробував знайти для цього спеціальну команду Git, але не зміг її знайти. Чи є щось коротше чи швидше, ніж наступне?
git branch | awk '/\*/ { print $2; }'
Відповіді:
$ git rev-parse --abbrev-ref HEAD
master
Це має працювати з Git 1.6.3 або новішою версією.
HEAD
, не очікуєтьсяmaster
У Git 1.8.1 ви можете використовувати команду git symbolic-ref за допомогою параметра "--short":
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
fatal: ref HEAD is not a symbolic ref
під час запуску цього тексту як частини збірки
З Git 2,22 (Q2 2019), ви будете мати більш простий підхід: git branch --show-current
.
Див. Комісію 0ecb1fc (25 жовтня 2018) від Даніельса Умановскіса ( umanovskis
) .
(Об'єднав Хуніо С Хамано - gitster
- в комітті 3710f60 , 07 березня 2019 р.)
branch
: ввести--show-current
варіант відображенняКоли буде зателефоновано з
--show-current
,git branch
надрукує поточну назву гілки та припинить.
Друкується лише власне ім'я безrefs/heads
.
У відокремленому стані HEAD нічого не виводиться.Призначений як для створення сценаріїв, так і для інтерактивного / інформаційного використання.
На відміну від цьогоgit branch --list
, для отримання назви гілки не потрібна фільтрація.
Можливо, вас зацікавить вихід
git symbolic-ref HEAD
Зокрема, залежно від ваших потреб та плану, які ви можете зробити
basename $(git symbolic-ref HEAD)
або
git symbolic-ref HEAD | cut -d/ -f3-
а потім знову є .git/HEAD
файл, який також може зацікавити вас.
git rev-parse --symbolic-full-name
до git symbolic-ref
.
basename
або cut
; використання BR=${BR#refs/heads/}
(де BR - ім'я змінної, на якій ви зберегли вихід git symbolic-ref HEAD
).
git symbolic-ref --short HEAD
також
З того, що я можу сказати, немає ніякого способу споконвічно показати лише поточну гілку в Git, тому я використовував:
git branch | grep '*'
grep '*'
номінально це синтаксична помилка. Ви, мабуть, хочете git branch | sed -n 's/^\* //p'
все одно. Або, власне, те, що в першу чергу розміщувала ОП, що означає те саме.
grep '*'
номінально є синтаксична помилка?
'*'
це регулярний вираз, і як таке воно недійсне. Можливо, ви хочете використовувати '[*]'
(тобто символ *
замість оператора "нуль або більше разів").
grep '\*'
git branch | grep "*" | cut -d' ' -f2
Я думаю, що це має бути швидким, і його можна використовувати з API Python:
git branch --contains HEAD
* master
Я використовую
/etc/bash_completion.d/git
Він поставляється з Git і надає підказку з назвою гілки та завершення аргументу.
$ source /etc//bash_completion.d/git-prompt
файл може бути названий по-різному в різних системах. (Примітка. source
Ключове слово те саме, що просто .
(крапка) у bash.)
Для повноти, echo $(__git_ps1)
принаймні, в Linux слід вказати назву поточної гілки, оточеної дужками.
Це може бути корисно в деяких сценаріях, оскільки це не команда Git (хоча в залежності від Git), зокрема для налаштування вашого командного рядка Bash для відображення поточної гілки .
Наприклад:
/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>
Хтось може вважати це корисним. Поточна гілка відображається позначкою *.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