무엇을 git rev-parse
합니까?
맨 페이지를 읽었지만 답변보다 더 많은 질문을 제기했습니다. 같은 것들:
매개 변수 선택 및 마사지
마사지 ? 그게 무슨 뜻이야?
수정 자 지정자의 리졸버 (SHA1로)를 사용하고 있습니다.
git rev-parse HEAD^
또는
git rev-parse origin/master
이것이 명령의 목적입니까? 그렇지 않으면 이것을 달성하기 위해 그것을 사용하는 것이 맞습니까?
답변
git rev-parse
plumbing
주로 조작에 사용되는 보조 명령입니다.
한 가지 일반적인 사용법은 git rev-parse
개정 지정자가 지정된 SHA1 해시를 인쇄하는 것입니다. 또한 --short
더 짧은 고유 SHA1 인쇄 와 같이이 출력을 형식화하는 다양한 옵션이 있습니다 .
내가 사용한 다른 유스 케이스 (스크립트 및 git 위에 빌드 된 기타 도구)도 있습니다.
--verify
지정된 객체가 유효한 git 객체인지 확인하십시오.--git-dir
.git
디렉토리 의 abs / 상대 경로를 표시합니다 .- 현재 저장소를 사용
--is-inside-git-dir
하거나 작업 트리를 사용하여 저장소에 있는지 확인--is-inside-work-tree
- 리포지토리가 베어인지 확인
--is-bare-repository
- SHA1 분기 (인쇄의 해시
--branches
(), 태그--tags
)와 심판도 여과 원격에 기초 할 수있다 (사용--remote
) --parse-opt
스크립트에서 인수를 정규화하고 (와 비슷한 종류getopt
) 및 함께 사용할 수있는 출력 문자열을 인쇄eval
Massage
단지 한 형태에서 다른 형태, 즉 변형 명령으로 정보를 변환 할 수 있음을 의미합니다. 이것들은 내가 생각할 수있는 몇 가지 빠른 예입니다.
- 커밋의 SHA1에 분기 또는 태그 이름을 지정하여 커밋에 대한 SHA1 값만 허용하는 배관 명령으로 전달 될 수 있도록합니다.
- 개정의 범위
A..B
에 대한git log
또는git diff
하부 배관 용 명령과 등가로 인수B ^A
답변
명령 이름의 어원에 대해 자세히 설명하기 위해 rev-parse
Git rev
은 배관 명령 의 용어 를 “수정”의 약어로 일관되게 사용 하며 일반적으로 커밋의 40 자 SHA1 해시를 의미합니다. rev-list
예를 들어이 명령 은 분기 등에 대한 40 자 커밋 해시 목록을 인쇄합니다.
이 경우 이름이로 확장 될 수 있습니다 parse-a-commitish-to-a-full-SHA1-hash
. 이 명령에는 Tuxdude의 답변에 언급 된 몇 가지 보조 기능이 있지만 이름은 분기 이름이나 약식 해시와 같은 사용자 친화적 인 참조를 많은 프로그래밍 / 배관에 가장 유용한 모호하지 않은 40 자 SHA1 해시로 변환하는 유스 케이스 인 것처럼 보입니다. 목적.
나는 그것이 그것을 이해하기 전에 “역 분석”이라고 생각하고 “마사지”와 “조작”이라는 용어를 이해하는 데 같은 문제가 있다고 생각한다는 것을 안다. 🙂
어쨌든, 나는이 “수정에 대한 분석”개념은 그것을 생각하기에 만족할만한 방법이며, 그런 종류의 일이 필요할 때이 명령을 명심할 수있는 믿을만한 개념을 발견합니다. 스크립팅 Git에서 자주 사용자 친화적 인 커밋 참조를 사용자 입력으로 사용하고 일반적으로 가능한 한 빨리 확인 후 명확하고 모호하지 않은 작업 참조로 확인하려고합니다. 그렇지 않으면 입력 번역 및 유효성 검사가 스크립트를 통해 확산되는 경향이 있습니다.