programing

Git에서 현재 체크아웃된 커밋 찾기

subpage 2023. 7. 8. 10:54
반응형

Git에서 현재 체크아웃된 커밋 찾기

저는 지금 한창입니다.git bisect회기의

현재 사용 중인 커밋(SHA1 해시)을 확인하는 명령은 무엇입니까? git status에서는 이 기능을 제공하지 않습니다.

편집: 전화하는 것 같습니다.git log그리고 첫 번째 진입 작품을 보는 것은?

현재 작업 복사본에 체크아웃한 커밋을 볼 수 있는 최소 5가지 방법이 있습니다.git bisect세션(이등분하지 않을 때도 옵션 1-4가 작동함):

  1. git show.
  2. git log -1.
  3. Bash 프롬프트.
  4. git status.
  5. git bisect visualize.

아래에서 각 옵션에 대해 자세히 설명하겠습니다.

옵션 1: git show

현재 체크아웃한 커밋을 결정하는 방법에 대한 일반적인 질문에 대한 이 답변에서 설명한 바와 같이, 다음 기간 동안만 체크아웃한 것은 아닙니다.git bisect), 를 사용할 수 있습니다.git show와 함께-s패치 출력을 억제하는 옵션:

$ git show --oneline -s
a9874fd Merge branch 'epic-feature'

옵션 2: git log -1

또한 간단히 할 수 있습니다.git log -1현재 어떤 임무를 수행하고 있는지 확인할 수 있습니다.

$ git log -1 --oneline
c1abcde Add feature-003

옵션 3: Bash 프롬프트

Git 버전 1.8.3+(또는 이전 버전이었습니까?)에서는 작업 복사본에 체크아웃한 현재 분기를 표시하도록 Bash 프롬프트가 구성되어 있으면 이등분 세션 중 또는 "분리 HEAD" 상태일 때 체크아웃한 현재 커밋도 표시됩니다.아래의 예에서, 나는 현재 다음을 가지고 있습니다.c1abcde체크아웃됨:

# Prompt during a bisect
user ~ (c1abcde...)|BISECTING $

# Prompt at detached HEAD state 
user ~ (c1abcde...) $

옵션 4: git 상태

또한 Git 버전 1.8.3+ (그리고 아마도 더 이전, 다시 확실하지 않음), 실행 중git status또한 이등분 중에 체크아웃한 커밋과 분리된 HEAD 상태에 있을 때도 표시됩니다.

$ git status
# HEAD detached at c1abcde <== RIGHT HERE

옵션 5: git 이등분 시각화

마지막으로, 당신이 하는 동안.git bisect또는 기본 제공 별칭을 사용할 수도 있습니다.git bisect view시작하기 위해gitk사용자가 어떤 커밋에 참여하고 있는지, 그리고 지금까지 어떤 커밋을 불량 및 양호로 표시했는지 그래픽으로 볼 수 있습니다.버전 1.8.3보다 훨씬 이전에 존재했던 것으로 확신합니다. 어떤 버전에 도입되었는지는 잘 모르겠습니다.

git bisect visualize 
git bisect view # shorter, means same thing

enter image description here

다음을 수행할 수 있습니다.

git rev-parse HEAD

좀 더 자세히 설명하자면,git rev-parseisgit의 기본 명령어는 커밋의 이름을 지정할 수 있는 이국적인 방법을 해석하기 위한 것입니다.HEAD현재 커밋 또는 분기에 대한 참조입니다. (의 경우)git bisect세션은 분기가 아닌 커밋("분리된 HEAD")을 직접 가리킵니다.

또는 다음을 수행하는 것이 좋습니다(기억하기 쉽습니다).

git show

▁commit다▁the니▁which▁defaults▁showing표시라는 커밋을 표시합니다.HEAD을 가리키고 있습니다.보다 간결한 버전의 경우 다음을 수행할 수 있습니다.

$ git show --oneline -s
c0235b7 Autorotate uploaded images based on EXIF orientation
git rev-parse HEAD273cf91b4057366a560b9ddcee8fe58d4c21e6cb

업데이트:

또는(태그가 있는 경우):

(버전 이름을 지정하기에는 좋지만 git로 되돌리기에는 별로 좋지 않습니다.)

git 묘사v0.1.49-localhost-ag-1-g273cf91

또는 (Mark가 제안한 대로, 완성도를 위해 여기에 나열):

git show --한줄-s.c0235b7 EXIF 방향에 따라 업로드된 이미지 자동 회전

간단한 정보만 추출하려면 다음을 사용하여 얻을 수 있습니다.git show--format=<string>옵션...그리고 당신을 곤란하게 하지 말라고 부탁합니다.--no-patch일 수 수 것을 합니다. 즉, 단필드인경우많가은일형다식의는대니있하로습수얻원을을력출f▁this,즉f-다단니있습일드필수▁output▁of▁you얻을대로▁means는▁print▁get▁a▁canstyle▁you,▁whatever▁field▁want▁often▁be▁single▁which.

를 들어,를들 어예가, 져면려오만해시단축▁(면▁(려▁the)만,%h) 다음과 같이 말할 수 있습니다.

$ git show --format="%h" --no-patch
4b703eb

bash(사람들이 원하는 가능성이 높은 작업)의 환경 변수에 저장하려는 경우 다음 구문을 사용할 수 있습니다.

$ GIT_COMMIT="$(git show --format="%h" --no-patch)"

$ echo $GIT_COMMIT
4b703eb

수행할 수 있는 작업의 전체 목록은 에 있습니다. 그러나 유용할 수 있는 속성의 간략한 목록은 다음과 같습니다.

  • %H를 .
  • %h commit hash 해시약
  • %T hash 나시해
  • %t약어 트리 해시
  • %P 해시
  • %p 부모
  • %an
  • %ae 이메일
  • %at 날짜,, UNIX 타임스탬프
  • %aI 날짜,한 ISO , ISO 8601 형식
  • %cn
  • %ce
  • %ct 날짜,, UNIX 타임스탬프
  • %cI 8601 , ISO 8601 형식
  • %s
  • %f파일 줄
  • %gD 선택기reflog 파일: refs/stash@{1})
  • %gd 선택기는 reflog 파일(예: stash@{1})입니다.

사용하다git show또한 커밋 메시지를 표시하고 인수가 지정되지 않은 경우에는 현재 커밋으로 기본 설정됩니다.

언급URL : https://stackoverflow.com/questions/11168141/find-which-commit-is-currently-checked-out-in-git

반응형