728x90
git log
커밋 내역을 확인하는 가장 일반적인 방법은 git log명령어를 입력하는 것입니다.
$ git log
commit c008c4785eeb14a395b4aa6cf9fa3b9e5896f5a4 (HEAD -> main)
Author: grab <grab@gmail.com>
Date: Tue Aug 17 21:21:45 2021 +0900
a 파일을 수정한다
commit b014111c82fa239b771b2b6d6bdc567282e7b325
Author: grab <grab@gmail.com>
Date: Tue Aug 17 20:34:32 2021 +0900
a 파일을 추가한다
--oneline 으로 간략하게 볼 수도 있습니다.
$ git log --oneline
c008c47 (HEAD -> main) a 파일을 수정한다
b014111 a 파일을 추가한다
특정 개수를 보고 싶다면 -n 플래그를 활용합니다.
$ git log -n 10
# 최근 10개의 커밋들만 보여줍니다.
저 같은 경우 git을 그래프 형태로 깔끔하게 보고 싶을 때 아래와 같이 사용합니다.
커밋의 전체적인 방향과 머지된 흐름도 파악할 수 있습니다.
git log --oneline --decorate --graph
git show
$ git show
commit c008c4785eeb14a395b4aa6cf9fa3b9e5896f5a4 (HEAD -> main)
Author: grab <grab@gmail.com>
Date: Tue Aug 17 21:21:45 2021 +0900
a 파일을 수정한다
diff --git a/a b/a
index e69de29..9e365c8 100644
--- a/a
+++ b/a
@@ -0,0 +1 @@
+this is a
특정 커밋 정보를 확인하려면 git show 커밋 해시를 붙여주면 됩니다.
$ git show c008c4785eeb14a395b4aa6cf9fa3b9e5896f5a4
$ git show HEAD^ #HEAD 포인터를 활용할 수도 있습니다
git reflog
git reflog 명령어로 git reset, git rebase 명령어로 삭제된 커밋을 포함한 모든 커밋 히스토리를 볼 수 있습니다.
$ git reflog
c008c47 (HEAD -> main) HEAD@{0}: commit: a 파일을 수정한다
b014111 HEAD@{1}: commit (initial): a 파일을 추가한다
이때 일반적이라면 git reset하기 전의 작업 내역으로 돌아갈 수 없지만, git reflog에는 이렇게 git reset한 명령 내역까지 모두 남아있습니다.
$ git reflog
0379a06 (HEAD - my-branch) HEAD@{0}: reset: moving to 0379a069b014afc2c256f3d94c4fb93fd833003e
c7591af HEAD@{1}: checkout: moving from main to my-branch
9cb8a3b (main) HEAD@{2}: rebase (finish): returning to refs/heads/main
9cb8a3b (main) HEAD@{3}: rebase (pick): d 파일을 추가한다
c7591af HEAD@{4}: rebase (start): checkout my-branch
31b3b73 HEAD@{5}: reset: moving to 31b3b73dc282d37a30b9d0242f18dfaf69878c0b
따라서 git reset --hard 한 명령을 취소하고 싶으면 (명령 이전으로 돌아가고 싶으면) git reflog 에서 해당 명령 직전의 커밋 해시 값을 참조하여 git reset --hard 하면 됩니다.
$ git reset c7591af --hard
728x90
'Git' 카테고리의 다른 글
[stash] 변경 사항을 커밋하기 보단 임시저장하고 싶어요 (0) | 2022.05.21 |
---|---|
[restore & reset] 변경사항, 커밋을 초기화하고 싶어요 (0) | 2022.05.20 |
브랜치 (0) | 2022.05.18 |
작업 공간 (0) | 2022.05.18 |
gitGit (0) | 2021.09.02 |