2011-02-03 4 views
4

특정 git 브랜치에 대한 축약 된 커미트 이름을 추출해야합니다. 이들은 일반적으로 7 자리 16 진수이며, 특정 커밋을 식별하기 위해 일부 시스템 (예 : Heroku의 COMMIT_HASH 환경 변수 포함)에서 사용됩니다.git 브랜치의 abbrev-commit을 청결하게 얻으십시오.

포함 약식 커밋 이름을 얻을 수있는 여러 가지 추한 방법,있다 :

$ git log -1 --oneline | awk '{ print $1 }' 
d4377e3 
$ git describe --always --match '' 
d4377e3 

이 값을 얻을 수있는 청소기 방법이 있나요이?

답변

8

큰 질문을. 나는 낮은 수준의 자식 명령 중 하나 인 git-rev-parse을 찾고 있다고 생각한다. 최신하려는 경우 또한

[[email protected] Data]$ git-rev-parse --short github/master 
8b81a38 

, 그냥 매개 변수로 HEAD을 통과, 현재 지점에 커밋합니다.

[[email protected] Data]$ git-rev-parse --short HEAD 
8b81a38 
+4

'귀찮은 * 페티 닉'이기 위해서'git-rev-parse'는 도자기 명령이다. 스크립팅을 위해서 배관 명령'git rev-list -n1 --abbrev-commit HEAD'가 대신 사용되어야합니다. 그러나 그것은 중요하지 않습니다;) –

+0

@jleedev : 좋은 잡기. 나는 그 사실을 몰랐다. – gahooa

2

git log--pretty-format 옵션을 사용할 수 있습니다

git log -1 --pretty=format:%h 
+0

는 나를 알 수없는 인수를 준다 – JasonPlutext

관련 문제