git의 최고의 장점 중 하나가 버전 관리가 된다는 것인데, 이것이 다른 말로 하면 이력 관리가 가능하다는 말이다.
git의 이력을 관리하면서 이전 버전으로 돌아갈수도, 거기서 수정을 시작할 수도 있다. 오늘은 git의 이력을 조회하는 명령어로 포스팅을 해보려 한다.
git을 사용하면서 소스코드를 수정하다보면 수많은 commit을 수행한다. 그러다보면 언제 어떤 commit을 실행했는지 확인해야 할 때가 있다. 그때는 "git log"라는 명령어를 사용하면 된다.
현재 계속 사용하고 있는 "temp" repository에서 git log를 실행해보려 한다.
$ git log
commit 63d3f22539a85ba59fde6cbc7ddf7982519500b8 (HEAD -> master, origin/master)
Author: eunjikeam <gg96083@gmail.com>
Date: Wed Nov 18 10:23:07 2020 +0900
edit and add files
commit 44de8f628115f3c0ef02b1ba5b61638a65b116de
Author: eunjikeam <gg96083@gmail.com>
Date: Tue Nov 17 12:14:05 2020 +0900
test
commit하면 해당 commit에 40자리의 문자열을 발번해주는데, 이전 포스팅에서 말했듯이 그것을 체크섬이라고 한다. 실제 커밋하고 난 뒤에 보여주는 문자열은 40자리의 앞자리 7자리만 보여준다.
git log를 하고 나면 commit 히스토리를 시간순으로 보여주는데, 가장 최근의 커밋이 가장 위에 나온다. 그리고 저자 이름, 수정 날짜, commit 메세지를 함께 보여준다. 만일 push까지 진행항 상황이라면 체크섬의 오른쪽에 push 한 이력까지 함께 나오게 된다.
git log에는 몇가지 옵션이 있는데, 주로 사용하는 옵션들은 다음과 같다.
옵션설명
옵션 |
설명 |
-p |
각 커밋에 적용된 패치를 보여준다. |
--stat |
각 커밋에서 수정된 파일의 통계정보를 보여준다. |
--shortstat |
--stat 명령의 결과 중에서 수정한 파일, 추가된 라인, 삭제된 라인만 보여준다. |
--name-only |
커밋 정보중에서 수정된 파일의 목록만 보여준다. |
--name-status |
수정된 파일의 목록을 보여줄 뿐만 아니라 파일을 추가한 것인지, 수정한 것인지, 삭제한 것인지도 보여준다. |
--abbrev-commit |
40자 짜리 SHA-1 체크섬을 전부 보여주는 것이 아니라 처음 몇 자만 보여준다. |
--relative-date |
정확한 시간을 보여주는 것이 아니라 “2 weeks ago” 처럼 상대적인 형식으로 보여준다. |
--graph |
브랜치와 머지 히스토리 정보까지 아스키 그래프로 보여준다. |
--pretty |
지정한 형식으로 보여준다. 이 옵션에는 oneline, short, full, fuller, format이 있다. format은 원하는 형식으로 출력하고자 할 때 사용한다. |
--oneline |
--pretty=oneline --abbrev-commit 두 옵션을 함께 사용한 것과 같다. |
출처 : git-scm.com
위의 옵션들 중 몇가지 내가 사용하는 것들을 소개해 보려고 한다.
"git log --oneline" 은 commit 체크섬 일부와 commit 메세지만 보여주는 옵션이다. commit 할 때 메세지를 잘 입력해놓으면 oneline을 확인하는 것 만으로 내가 어떻게 수정했는지 잘 확인할 수 있다.
$ git log --oneline
63d3f22 (HEAD -> master, origin/master) edit and add files
44de8f6 test
"git log -n"을 사용하면 상위 n개의 commit 내역만 볼 수 있다. 가장 최근의 commit이 무엇인지 확인하려 하거나 최근 몇개의 이력만 확인하려 할 떄는 꽤나 유용하다. 물론 "-n" 앞에 다른 옵션을 넣어줘도 정상으로 작동한다.
$ git log -2
commit 63d3f22539a85ba59fde6cbc7ddf7982519500b8 (HEAD -> master, origin/master)
Author: eunjikeam <gg96083@gmail.com>
Date: Wed Nov 18 10:23:07 2020 +0900
edit and add files
commit 44de8f628115f3c0ef02b1ba5b61638a65b116de
Author: eunjikeam <gg96083@gmail.com>
Date: Tue Nov 17 12:14:05 2020 +0900
test
"git log -p"는 "git log --patch"의 명령어를 줄여서 사용하는건데 코드가 어떻게 변경되었는지까지 함꼐 보여주는 명령어이다. 동료가 무엇을 커밋했는지 리뷰하고 빨리 조회하는데 유용하다 하는데... 코드 수정이 많으면 보기 어려워지는 단점이 있기도 하고, 여러개의 파일을 수정했으면 보여주는게 너무 길어 보기 어렵다. 그래서 내 경우에는 "git diff"를 써서 직접 파일을 조회하는 편이다.
$ git log -p -1
commit 63d3f22539a85ba59fde6cbc7ddf7982519500b8 (HEAD -> master, origin/master)
Author: eunjikeam <gg96083@gmail.com>
commit 63d3f22539a85ba59fde6cbc7ddf7982519500b8 (HEAD -> master, origin/master)
Author: eunjikeam <gg96083@gmail.com>
Date: Wed Nov 18 10:23:07 2020 +0900
edit and add files
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..25dbb36
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+<C7><F6><C0><E7> <C6><C4><C0><CF><C0><BA> <C0>ӽ÷<CE> <BB><FD><BC><BA><C7><D1>
<B8><B6>ũ<B4>ٿ<EE> <C6><C4><C0><CF><C0>̴<D9>. ## 한글깨짐현상. 이에 대해 다음에 포스팅해봐야지
\ No newline at end of file
diff --git a/test.txt b/test.txt
index fc16b07..41a8829 100644
--- a/test.txt
+++ b/test.txt
@@ -1 +1,2 @@
-gthub test
\ No newline at end of file
+github test
이 외에도 여러가지 옵션들이 있는데, "git log --help"를 입력하면 메뉴얼 페이지가 나오기도 하고, 아래 참조사이트에 자주 사용하는 옵션들은 꽤 많이 입력되어있으니 참고해도 좋을 듯 하다.
참조 사이트
'Code > Git' 카테고리의 다른 글
[Git]Git add 명령어 되돌리기 (0) | 2020.11.20 |
---|---|
[Git] git bash 한글이름 파일 깨짐 해결 (0) | 2020.11.19 |
[Git] Staging이 뭐지?? - Git에서 파일의 상태 알기 (0) | 2020.11.18 |
[Git] local 상에서 git repository 관리하기( github와 local 동기화) (0) | 2020.11.17 |
[Git] window에서 git bash 설치하기 (0) | 2020.11.17 |