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 |