HEAD 커밋 ID를 표시하는 Git 명령?


251

HEAD의 커밋 ID를 인쇄하기 위해 어떤 명령을 사용할 수 있습니까?

이것이 내가 손으로하는 일입니다.

$ cat .git/HEAD
ref: refs/heads/v3.3
$ cat .git/refs/heads/v3.3
6050732e725c68b83c35c873ff8808dff1c406e1

그러나 텍스트 파일에 HEAD의 커밋 ID가 정확히 포함되도록 텍스트 명령으로 일부 명령의 출력을 안정적으로 파이프 할 수있는 스크립트가 필요합니다. 누구든지 도울 수 있습니까?


비슷한 질문이 있습니다. 그리고 여기에 정답이 있습니다 : stackoverflow.com/questions/44994626/…
smwikipedia

답변:


451

다음 명령을 사용하십시오.

git rev-parse HEAD

짧은 버전의 경우 :

git rev-parse --short HEAD

34
해시의 짧은 버전을 찾는 사람 git rev-parse --short HEAD에게는 효과가 있습니다.
mgarciaisaia


15

나중에 참조 할 수있는 오래된 스레드 ... :) 심지어 다음 작품

git show-ref --head

기본적으로 HEAD는 필터링됩니다. 그래도 다음에주의하십시오; 끝에 's'가있는 복수형 "헤드". 다음 명령은 "refs / heads"아래 분기를 보여줍니다.

 git show-ref --heads

4
(큰) git repo 에서이 명령을 사용하면에서 두 줄 git show-ref --heads과 6290 줄을 얻습니다 git show-ref --head. 따라서 단일 해시 만 원한다면 의도 한 결과가 아닐 수도 있습니다.
Remigius Stalder 2012 년

7

git log마지막 커밋 만 표시 -1하고 다음과 같이 커밋 ID 만 포함하는 형식 만 표시하도록 옵션을 지정할 수 있습니다 .

git log -1 --format=%H

단축 커밋 ID를 선호하는 경우 :

git log -1 --format=%h



1

https://git-scm.com/docs/git-log 에 따르면 콘솔에서 더 예쁜 출력을 얻으려면 git-log 명령 의 --decorate 인수를 사용할 수 있습니다 .

git log --pretty=oneline --decorate

인쇄합니다 :

2a5ccd714972552064746e0fb9a7aed747e483c7 (HEAD -> master) New commit
fe00287269b07e2e44f25095748b86c5fc50a3ef (tag: v1.1-01) Commit 3
08ed8cceb27f4f5e5a168831d20a9d2fa5c91d8b (tag: v1.1, tag: v1.0-0.1) commit 1
116340f24354497af488fd63f4f5ad6286e176fc (tag: v1.0) second
52c1cdcb1988d638ec9e05a291e137912b56b3af test

0

git rev-parse --abbrev-ref HEAD


1
커밋 ID가 아니라 커밋과 관련된 이름 (예 : 분기 또는 태그)이 표시됩니다. 이것은 원래 사용자가 원하는 것이 아닙니다.
Asfand Qazi

0

이 명령을 사용할 수 있습니다

$ git rev-list HEAD

headUnix 명령을 사용하여 다음 n HEAD과 같은 최신 커밋 을 표시 할 수도 있습니다.

$ git rev-list HEAD | head - 2


0

당신이 사용할 수있는

git log -g branchname

출력 git reflog과 같은 형식의 정보 를 보려면git log

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.