itsource

Git에서 현재의 지점명을 취득하려면 어떻게 해야 하나요?

mycopycode 2023. 4. 12. 22:20
반응형

Git에서 현재의 지점명을 취득하려면 어떻게 해야 하나요?

Git에서 현재 지점 이름은 어떻게 알 수 있나요?

현재 분기의 이름만 표시하려면:

git rev-parse --abbrev-ref HEAD

레퍼런스:Git에 현재 분기만 표시

git branch

레포의 모든 로컬브런치를 표시합니다.별표가 붙은 브랜치가 현재 브랜치입니다.


현재 지점 이름만 가져오려면 다음 절차를 따릅니다.

git rev-parse --abbrev-ref HEAD

또는 Git 2.22 이상:

git branch --show-current

,도,git symbolic-ref HEAD재스펙

Git v1.8 이후 브랜치 이름만 표시하려면 (그렉에게 알려줘서 고마워)

git symbolic-ref --short HEAD

Git v1.7+에서는 다음 작업도 수행할 수 있습니다.

git rev-parse --abbrev-ref HEAD

지점에 있는 경우 두 지점 모두 동일한 지점 이름을 지정해야 합니다.만약 당신이 분리된 머리 위에 있다면 답은 다릅니다.

주의:

이전의 클라이언트에서는, 다음과 같이 동작하고 있는 것 같습니다.

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

- Darien 26. 2014년 3월

참고로 이 스레드에 기재되어 있는 대부분의 (기본 명령줄) 테크닉의 개요를 설명했습니다.각각은 몇 가지 사용 예에 적용됩니다.HEAD는 다음과 같습니다.

  • 로컬 브랜치(마스터)
  • 리모트 트래킹브런치, 로컬브런치와 동기화(마스터와 같은 커밋으로 마스터)
  • 리모트 트래킹브런치, 로컬브런치와 동기화되지 않음(syslog/syslog-foo)
  • 태그(v1.2.3)
  • submodule(서브모듈 디렉토리 내에서 실행)
  • 일반 분리 헤드(위 중 하나 없음)

결과:

  • git branch | sed -n '/\* /s///p'
    • 브런치: " " local local:: local:master
    • ★★★★★★★★★★★★★★★★★★★★★★★*(detached from origin/master)
    • "CHANGE: "CHANGE: " (CHANGE:)" (CHANGE:(detached from origin/feature-foo)
    • ★★★★★★(detached from v1.2.3)
    • : " " " " :(HEAD detached at 285f294)
    • 헤드: "Discripted Head" : "Discripted Head" :(detached from 285f294)
  • git status | head -1
    • 브런치: " " local local:: local:# On branch master
    • ★★★★★★★★★★★★★★★★★★★★★★★*# HEAD detached at origin/master
    • "CHANGE: "CHANGE: " (CHANGE:)" (CHANGE:# HEAD detached at origin/feature-foo
    • ★★★★★★# HEAD detached at v1.2.3
    • : " " " " :# HEAD detached at 285f294
    • 헤드: "Discripted Head" : "Discripted Head" :# HEAD detached at 285f294
  • git describe --all
    • 브런치: " " local local:: local:heads/master
    • ★★★★★★★★★★★★★★★★★★★★★★★*heads/master(주의: 없음 remotes/origin/master)
    • "CHANGE: "CHANGE: " (CHANGE:)" (CHANGE:remotes/origin/feature-foo
    • ★★★★★★v1.2.3
    • : " " " " :remotes/origin/HEAD
    • 헤드: "Discripted Head" : "Discripted Head" :v1.0.6-5-g2393761
  • cat .git/HEAD다음과 같습니다.
    • 브런치: " " local local:: local:ref: refs/heads/master
    • : " " " " :cat: .git/HEAD: Not a directory
    • 기타 모든 사용 사례: 대응하는 커밋의 SHA
  • git rev-parse --abbrev-ref HEAD
    • 브런치: " " local local:: local:master
    • 모든 예: " " " " "HEAD
  • git symbolic-ref --short HEAD
    • 브런치: " " local local:: local:master
    • 모든 예: " " " " "fatal: ref HEAD is not a symbolic ref

(참고로 이것은 git 버전 1.8.3.1에서 수행되었습니다.)

버전 2.22의 git에서는 다음과 같이 사용할 수 있습니다.

git branch --show-current

설명 페이지:

현재 분기의 이름을 인쇄합니다.분리된 HEAD 상태에서는 아무것도 인쇄되지 않습니다.

또 하나의 대안:

git name-rev --name-only HEAD

간단하게 말하면, 1개의 라이너(배시)로 입수했습니다.

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

(신용:제한적 어텐션)

그리고 제가 있는 동안 리모트 트래킹브런치를 받을 수 있는 라이너 1개(있는 경우)

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

리눅스에서는 저장소 디렉터리에 명령줄(콘솔)을 입력할 수 있습니다.

$ git status

다음과 같은 텍스트가 표시됩니다.

...
On branch master
...

, 지금 이 출연하고 입니다.master if. 그 에서 파일을 하고 있는 경우, 그 파일이 같은 로컬 저장소 버전 관리 하에 있는 파일을 포함한 로컬 디렉토리)에 있는 경우, 이 브랜치에서는 파일을 그 시점에서 파일을 편집하고 있는 경우, 그 파일이 같은 로컬저장소(Git 버전 관리 하에 있는 파일을 포함한 로컬디렉토리)에 있는 경우는, 이 브랜치에서 파일을 편집하고 있습니다.

단말기에 다음 명령을 입력합니다.

git branch | grep \*

또는

git branch --show-current 

또는 Git 2.22 이상:

  git branch --show
git symbolic-ref -q --short HEAD

현재 브랜치 이름이 필요한 스크립트에서 사용합니다.현재 지점 이름이 될 HEAD에 대한 현재 짧은 심볼 참조가 표시됩니다.

현재 브랜치를 git으로 사용하기 위해서는

git branch --show-current
git branch | grep -e "^*" | cut -d' ' -f 2

지점 이름만 표시됩니다.

git branch현재 지점 이름만 표시합니다.

git 브랜치는 모든 브랜치를 표시하고 현재 브랜치를 아스타리스크로 강조 표시합니다만, 브랜치가 많은 경우는 너무 번거로울 수 있습니다.

현재 있는 지점만 표시하려면 다음을 사용합니다.

git rev-parse --abbrev-ref HEAD

Oliver Refalo와 같은 길이의 명령줄 솔루션을 찾았습니다(올바른 명령어를 사용).

git branch | awk '/^\*/{print $2}'

awk''라고.{}regex"하는 행에 됩니다.으로 구분된 필드를 가정하기 에 두 번째 행을 기본적으로는 공백으로 구분된 필드를 가정하므로 두 번째 필드를 인쇄합니다.브런치가 있는 회선에만 * 가 붙어 있다고 가정할 수 있는 경우는, ^ 를 드롭 할 수 있습니다. 골프

죄송합니다. 이 답변은 다른 명령줄 답변입니다.이 질문을 받았을 때 제가 찾고 있던 것이었고, 이 답변 중 많은 부분이 도움이 되었습니다.이 솔루션은 다음과 같은 bash 셸 함수입니다.

get_branch () {
    git rev-parse --abbrev-ref HEAD | grep -v HEAD || \
    git describe --exact-match HEAD 2> /dev/null || \
    git rev-parse HEAD
}

이것은 항상 인간이 읽을 수 있고 직접적으로 사용할 수 있는 무언가를 나에게 제공해야 한다.git checkout.

  • 브런치: " " " : "feature/HS-0001
  • 태가커커커커커커커커 ( ) :v3.29.5
  • 리모트 브랜치(태그 부착 없음):SHA1
  • 다른 임의의 분리된 커밋: SHA1

브랜치 알 수 있습니다.git-aware 셸 는 현재 브랜치 이름을 알 수 있습니다. git status도움이 됩니다.


얼마나 빠른지.에서 벗어나다.contrib/(버전 2.3.0)에 되어 있는 (2.3.이 동작합니까?__git_ps1다음 중 하나:

  1. 첫째, 진행 중인 기본 재배치 검출 시 특별한 경우가 있습니다.Git은 리베이스 프로세스에서 이름 없는 브랜치(분리된 HEAD)를 사용하여 아토믹하게 만들고 원래 브랜치는 다른 곳에 저장합니다.

  2. 경우,.git/HEAD 링크(Git의 에서 매우 경우로, 는 Git를 사용합니다.git symbolic-ref HEAD 2>/dev/null

  3. 그렇지 않으면 다음과 같습니다..git/HEAD파일. 다음 단계는 파일 내용에 따라 달라집니다.

    • 이 파일이 존재하지 않으면 현재 분기가 없습니다.일반적으로 저장소가 비어 있는 경우 이 문제가 발생합니다.

    • 「 」로 'ref: ' 그 후 prefix, prefix, prefix..git/HEAD 자료이며, .is symref(영어)에 .풀네임을 하고, 「」를 삭제합니다.refs/heads/현재 분기의 짧은 이름을 얻으려면:

      b="${head#ref: }"
      # ...
      b=${b##refs/heads/}
      
    • 」로 'ref: '다음으로 분리된 HEAD(익명의 브런치)로 커밋을 직접 가리킵니다.git describe ...현재의 커밋을 인간에 의한 형태로 작성한다.

도움이 됐으면 좋겠어요.

git 상태에 대한 노이즈가 적은 버전이 효과가 있습니다.

git status -bsuno

출력됩니다.

## branch-name
#!/bin/bash
function git.branch {
  br=`git branch | grep "*"`
  echo ${br/* /}
}
git.branch

작업 디렉토리 명령에서 git bash를 사용할 수 있습니다.

git status -b

이것은 당신이 어느 브랜치에 있는지 알려줄 것입니다.그 중 몇 가지는 유용한 명령어입니다.

-s

--short 출력을 단축 형식으로 제공합니다.

-b --branch 짧은 형식으로도 지점 및 추적 정보를 표시합니다.

--cripts[=] 스크립트의 출력을 알기 쉬운 형식으로 제공합니다.이것은 쇼트 출력과 비슷하지만 Git 버전 전체 및 사용자 구성에 관계없이 안정적입니다.상세한 것에 대하여는, 이하를 참조해 주세요.

version 파라미터는 포맷버전을 지정하는 데 사용됩니다.이는 옵션이며 기본적으로 원래 버전 v1 형식입니다.

--long 출력을 롱 포맷으로 지정합니다.이것이 기본값입니다.

-v --verbose 변경된 파일 이름 외에 커밋되도록 준비된 텍스트 변경(예: git diff --cached 출력)도 표시합니다.-v를 두 번 지정하면 아직 스테이징되지 않은 작업 트리의 변경 내용(즉 git diff 출력 등)도 표시합니다.

할 수 방법은 다양합니다.Git 저는 : 、 음 、 음 、 음 음 、 음 음 、 음 but but but but but but but butbut

git branch --show

지어도.git branch에는 현재 브랜치 이름과 모든 기존 브랜치 이름 목록도 표시됩니다.

git status 

브랜치 이름도 변경과 함께 지정합니다.

예.

>git status
On branch master // <-- branch name here
.....

다음 중 하나를 시도합니다.

1.> git symbolic-ref --short HEAD

git symbolic-ref --short HEAD
>>> sid-dev

2.> git 브랜치 --show-current

git branch --show-current
>>> sid-dev

3.> git name-rev – 이름만 HEAD

git name-rev –name-only HEAD
>>> HEAD sid-dev

주의:

1.> git symbolic-ref --short HEAD는 현재 브랜치의 HEAD에 대한 짧은 심볼 참조를 표시합니다.현재 지점 이름입니다.

2.> git branch --show-current는 현재의 브랜치명을 인쇄하는 간단하고 효율적인 방법입니다.

3.> git name-rev – name-only HEAD는 다음 기호명을 부여합니다.HEAD의 지사의

> 에서는 4. > <고객명>님sid-dev제 지점 이름입니다.

시간이 지남에 따라, 우리는 정말 긴 지점 목록을 가지게 될 것이다.

다른 솔루션도 좋지만, Jacob의 답변에서 간략하게 설명하면 다음과 같습니다.

git branch | grep \*

지금이다,

git status

동작합니다만, 로컬에 변경이 가능합니다.

이 두 가지 명령어 중 하나를 사용할 것을 권장합니다.

git branch | grep -e "^*" | cut -d' ' -f 2

또는

git status | sed -n 1p | cut -d' ' -f 3

OR(상세)

git status -uno -bs| cut -d'#' -f 3 | cut -d . -f 1| sed -e 's/^[ \t]//1'| sed -n 1p

Netbeans에서 버전 주석이 활성화되어 있는지 확인합니다([View] -> [ Show Versioning Labels ] ) 。그러면 프로젝트 이름 옆에 지점 이름을 볼 수 있습니다.

http://netbeans.org/bugzilla/show_bug.cgi?id=213582

이건 어때?

{ git symbolic-ref HEAD 2> /dev/null || git rev-parse --short HEAD 2> /dev/null } | sed "s#refs/heads/##"

다음 셸 명령어는 현재 속해 있는 분기를 나타냅니다.

git branch | grep ^\*

Bash를 긴 에일리어스를 예: 에일리어스).cb이렇게요.

alias cb='git branch | grep ^\*'

가 " " " 인 경우$ 하면 ' , , , 、 , 、 을 、 을 。* master다음과 같이 합니다.

$ cb
* master

git-branch name.git-branch를 표시할 수.지사를 할 때, 때문에 편리합니다.$ git status항상요.Github repo git-aware-prompt.

터미널(ctrl-alt-t)을 열고 명령어를 입력합니다.

mkdir ~/.bash
cd ~/.bash
git clone git://github.com/jimeh/git-aware-prompt.git

를 .bashrc로 합니다.sudo nano ~/.bashrc명령어(Ubuntu의 경우)를 입력하고 다음 항목을 맨 위에 추가합니다.

export GITAWAREPROMPT=~/.bash/git-aware-prompt
source "${GITAWAREPROMPT}/main.sh"

그런 다음 코드를 붙여넣습니다.

export PS1="\${debian_chroot:+(\$debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \[$txtcyn\]\$git_branch\[$txtred\]\$git_dirty\[$txtrst\]\$ "

설치 코드를 이전에 붙여넣은 파일과 같은 파일의 끝에 있습니다.그러면 색칠된 여기에 이미지 설명 입력출력이 나타납니다.

는 가가 called called called라는 간단한 있다.git-cbr(current branch) 현재 브랜치 이름을 출력합니다.

#!/bin/bash

git branch | grep -e "^*"

(</FONT CHANGE:/FONT CHANGEFONT CHANGE:</</FONT CHANGE:>~/.bin에 폴더가 .$PATH.

repo에 때 git repo를 입력하면 .git cbr현재 지점 이름을 인쇄합니다.

$ git cbr
* master

은, 「 」가 기능하고 있기 때문에,git는 첫 하여 "이러한 스크립트를 실행하려고 이는 "이는 "이러다"라는 이름으로 실행됩니다.git-arg1를 들어, . 를를들 ..git branch '어디로 가느냐'라는 하려고 합니다.git-branch 등등.

분리된 헤드에 있을 때 지점 이름 또는 SHA1을 반환합니다.

git rev-parse --abbrev-ref HEAD | grep -v ^HEAD$ || git rev-parse HEAD

이것은 태그가 지원되지 않는 @dmaestro12의 응답의 짧은 버전입니다.

언급URL : https://stackoverflow.com/questions/6245570/how-do-i-get-the-current-branch-name-in-git

반응형