[GIT] 리비전 조회하기

SHA-1 줄여 쓰기

  • Git에서는 짧은 SHA-1 해시 값을 사용하여 커밋을 고유하게 식별합니다.
  • 저장소 내에서 중복되지 않는 4자의 해시 값으로도 커밋을 식별하는 데 충분합니다.
  • git log에서 하나의 커밋으로 git show [커밋번호]를 이용하면 결과는 모두 같습니다.
  • $ git show d4637e629f457423f61be95a904f39741c15b241
    $ git show d4637e629f457
    $ git show d463
  • git log --abbrev-commit 명령을 사용하면 짧은 해시 값을 출력할 수 있습니다.

브랜치로 가리키기

  • git show [브랜치]로 하면 브랜치의 최신 커밋을 보여줍니다.
  • git rev-parse [브랜치]로 하면 브랜치의 커밋의 SHA-1 값 출력됩니다.

RefLog로 가리키기

  • Git은 브랜치와 HEAD가 최근에 가리켰던 커밋을 기록하는 RefLog를 유지할 수 있습니다.
  • git reflog 명령을 이용하여 reflog를 확인할 수 있습니다.
  • @{n} 구문을 사용하여 n번 전에 가리키던 커밋을 확인할 수 있습니다.
  • $ git show HEAD@{5} 
    # 5번 전에 HEAD가 가리켰던 커밋 확인
  • 날짜 및 시간을 이용하여 조회가 가능합니다.
  • $ git show master@{yesterday}
    # 어제 master 브랜치가 가리켰던 커밋 확인
  • git log -g 옵션으로 reflog 결과를 git log 명령과 같은 형태로 볼 수 있습니다.
  • $ git log -g master
  • 로컬에서만 유지되기 때문에 동료의 저장소에는 없습니다.
  • 오래된 커밋은 RefLog에서 조회할 수 없습니다.

계통 관계로 가리키기

  • ^(캐럿) 기호를 사용하여 부모 커밋을 참조할 수 있습니다.
  • $ git show HEAD^
    # HEAD의 직전 커밋 확인
  • Windows에서는 HEAD^^ or "HEAD^"
  • ~ 기호를 사용하여 부모의 부모 커밋을 참조할 수 있습니다.
  • $ git show HEAD~2
    # HEAD의 부모의 부모 조회

범위로 가리키기

  • Double Dot를 이용하여 관련되지 않는 커밋을 확인할 수 있습니다.
  • $ git log master..experiment
    # master에는 없지만 experiment에는 있는 커밋 출력
  • 세 개 이상의 브랜치에서는 ^이나 --not 옵션을 붙여서 그 브랜치에 없는 커밋을 찾아줍니다.
  • $ git log refA ^refB --not refC
  • Triple Dot을 이용하여 공통된 커밋을 제외한 서로 다른 커밋을 보여줍니다.
  • $ git log master...experiment
    # master와 experiment 공통인 부분 제외된 커밋 출력
  • --left-right 옵션 추가하면 각 커밋이 어느 브랜치에 속해있는지도 출력해줍니다.
  • $ git log --left-right master...experiment
    # master와 experiment 공통인 부분 제외된 커밋 출력

'GIT > Git 도구' 카테고리의 다른 글

[GIT] 히스토리 편집하기  (0) 2024.03.18
[GIT] 히스토리 검색하기  (0) 2024.03.18
[GIT] 작업에 서명하기  (0) 2024.03.18
[GIT] Stashing과 Cleaning  (0) 2024.03.11
[GIT] 대화형 명령  (0) 2024.03.11