나는 이것을 위해 특별한 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
TravisCI 빌드의 일부로이 실행
Git 2.22 (2019 년 2 분기)를 사용하면 더 간단한 접근 방식이 있습니다 git branch --show-current
.
Daniels Umanovskis ( )의 commit 0ecb1fc (2018 년 10 월 25 일)를 참조하십시오 . ( Junio C Hamano 에 의해 병합 - 커밋 3710f60 , 2019 년 3 월 07 일)umanovskis
gitster
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'
어쨌든 원할 것입니다. 또는 실제로 OP가 처음에 게시 한 내용은 동일한 것입니다.
grep '*'
명목상 구문 오류가 왜 발생 했는지 알려주 시겠습니까?
'*'
정규 표현식이므로 유효하지 않습니다. 아마도 "0 번 이상 연산자"대신 '[*]'
문자 를 사용하고 싶을 것입니다 *
.
grep '\*'
git branch | grep "*" | cut -d' ' -f2
나는 이것이 빠르며 파이썬 API와 함께 사용할 수 있다고 생각합니다.
git branch --contains HEAD
* master
완성도 echo $(__git_ps1)
를 높이려면 Linux에서 최소한 괄호로 묶인 현재 분기의 이름을 제공해야합니다.
이것은 현재 브랜치를 표시하도록 Bash 명령 프롬프트를 설정 하는 데 Git 명령이 아닌 Git 명령이 아니기 때문에 일부 시나리오에서 유용 할 수 있습니다 .
예를 들면 다음과 같습니다.
/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