programing

git rev-parse는 무엇을 합니까?

telecom 2023. 5. 25. 21:32
반응형

git rev-parse는 무엇을 합니까?

무엇인가.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의 abs/abs 경로를 표시하기 위해.git디렉토리입니다.
  • 현재 리포지토리 내에 있는지 확인하는 중:--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-parseGit는 용어를 일관되게 사용합니다.rev배관 명령에서 "수정"의 줄임말이며 일반적으로 커밋에 대한 40자의 SHA1 해시를 의미합니다.명령어rev-list예를 들어 분기 등에 대한 40자 커밋 해시 목록을 인쇄합니다.

이 경우 이름을 다음으로 확장할 수 있습니다.parse-a-commitish-to-a-full-SHA1-hash이 명령은 Tuxdude의 답변에 언급된 몇 가지 보조 기능을 가지고 있지만, 지점 이름이나 약어 해시와 같은 사용자 친화적인 참조를 많은 프로그래밍/플럼핑 목적에 가장 유용한 40자 SHA1 해시로 변환하는 사용 사례로 보입니다.

저는 제가 그것을 알아채기 전에 꽤 오랫동안 그것이 "역 파즈" 무언가라고 생각하고 있었고 "마사지"와 "조작"이라는 용어를 이해하는 데 동일한 어려움을 겪었다는 것을 알고 있습니다 :)

어쨌든, 저는 이 "수정에 대한 구문 분석" 개념이 그것을 생각하는 만족스러운 방법이며, 제가 그런 종류의 것이 필요할 때 이 명령을 기억하기 위한 신뢰할 수 있는 개념이라고 생각합니다.스크립팅 Git에서 사용자에게 친숙한 커밋 참조를 사용자 입력으로 사용하고 일반적으로 가능한 한 빨리 확인되고 모호하지 않은 작업 참조로 해결하기를 원합니다.그렇지 않으면 입력 번역 및 검증이 스크립트를 통해 확산되는 경향이 있습니다.

git rev-parse또한 다음과 같은 --abbrev-ref 플래그를 사용하여 현재 분기 이름을 가져오는 데도 사용됩니다.

git rev-parse --abbrev-ref HEAD

TLDR:

현재 HEAD의 커밋 ID(즉, 현재 보고 있는 커밋)를 확인하는 데 도움이 됩니다.

git rev-parse HEAD

또는 더 짧은 커밋을 원하는 경우

git rev-parse --short HEAD

다른 분기에서 최신 커밋을 찾으려면 다음을 수행할 수 있습니다.

git rev-parse <local-branch-name>
git rev-parse origin/<remote-branch-name>

언급URL : https://stackoverflow.com/questions/15798862/what-does-git-rev-parse-do

반응형