IT knowledge

git commit 내역을 조회하기(git log)

정글탐험 2021. 1. 26. 23:24
반응형

프로젝트를 진행하다가 특정 커밋에서 무엇을 추가했는지 알고 싶을 때나, 프로젝트를 진행하면서 공부를 할 때 어떤 파일에 어떤 코드가 추가되었는지 등등을 알아보려면 커밋의 내용을 조회하는 방법을 아는 것이 필요합니다. GUI툴로는 commit의 내역을 검색해서 보여주는 tool이 제가 사용했던 깃 크라켄, 소스 트리, 깃허브 데스크톱 등에서는 볼 수가 없었던 지라 command line에서 git을 할 줄 알면 좋다고 생각하는 이유입니다.

 

git log 기본

일단 기본적으로 git의 히스토리를 보는 명령어는 git log입니다.

이 명령어를 치면 기본적으로 커밋 히스토리가 나오는데,

각 커밋을 한 사람과 한 시간 커밋의 해시값, 커밋 메시지 등이 나옵니다.

git log


commit e9b7bc8a07a23f12e402b19068156f77e71fc6b2 (HEAD -> master)

Author: 정글탐험 <jungle-tamhum@yandex.com>

Date:   Tue Jan 26 10:32:41 2021 +0900

 

    initial commit


 

여기서 커밋을 몇 번 더 하면 이런식으로 최근 커밋이 위에서부터 보입니다.

 

commit b04f52e7f24b467b5ab48c70684310c130ef69be (HEAD -> master)

Author: 정글탐험 <jungle-tamhum@yandex.com>

Date:   Tue Jan 26 22:45:03 2021 +0900

 

    2nd_file commit

 

commit 2643e8b8ee6ec634883cffe386e1d678f83d85c9

Author: 정글탐험 <jungle-tamhum@yandex.com>

Date:   Tue Jan 26 22:44:40 2021 +0900

 

    1st_file commit

 

commit e9b7bc8a07a23f12e402b19068156f77e71fc6b2

Author: 정글탐험 <jungle-tamhum@yandex.com>

Date:   Tue Jan 26 10:32:41 2021 +0900

 

    initial commit


git log 보기 편하게 옵션 더하기

여기까지가 기본적인 log였고, 이제 우리가 보기 편한 방법으로 바꿔보겠습니다.

git log --pretty=oneline --abbrev-commit


b04f52e (HEAD -> master) 2nd_file commit

2643e8b 1st_file commit

e9b7bc8 initial commit


 

결과가 굉장히 컴팩트하게 나왔습니다.

일단 해시값이 앞 7자리만 나왔습니다. 나중에 우리는 git log 7자리 -> 이렇게만도 가능합니다.

그리고 다른 정보들은 안 나오고 커밋 메시지만 나옵니다.

이렇게 콤팩트하게 하면 많은 커밋이 있을 때 한 번에 많은 양을 볼 수 있어서 어떤 커밋을 찾아야 할 때 편합니다.

 

git log pretty옵션에서 format까지 내가 원하는 대로 정하기

그리고 여기서 좀 더 나아가서 내가 원하는 대로 포맷을 바꾸는 법도 있습니다.

git log --pretty=format:'%h %an %ad %s'

이렇게 명령하면 되는데요, 결과는 이렇습니다.


b04f52e 정글탐험 Tue Jan 26 22:45:03 2021 +0900 2nd_file commit

2643e8b 정글탐험 Tue Jan 26 22:44:40 2021 +0900 1st_file commit

e9b7bc8 정글탐험 Tue Jan 26 10:32:41 2021 +0900 initial commit


%h는 커밋 짧은 해시

%an은 커밋의 작가

%ad는 커밋 시간

%s  커밋 내용 요약입니다.

좀 더 많은 옵션이 있습니다. 아래 링크에서 확인 가능합니다.

pretty=format 옵션 리스트

 

Git - 커밋 히스토리 조회하기

머지 커밋 표시하지 않기 저장소를 사용하는 워크플로우에 따라 머지 커밋이 차지하는 비중이 클 수도 있다. --no-merges 옵션을 사용하면 검색 결과에서 머지 커밋을 표시하지 않도록 할 수 있다.

git-scm.com

git 커밋 메시지 내용을 grep!

이다음으로는 커밋 메시지에 들어간 단어로 커밋을 찾는 법에 대해서 알아보겠습니다.

git log --grep <검색어>

git log --grep 2nd


commit b04f52e7f24b467b5ab48c70684310c130ef69be (HEAD -> master)

Author: 정글탐험 <jungle-tamhum@yandex.com>

Date:   Tue Jan 26 22:45:03 2021 +0900

 

    2nd_file commit


 

git commit을 graph로!!

마지막으로는 log에서 그래프를 표시하여 좀 더 편하게 git의 구조를 볼 수 있는 명령어입니다.

git log --graph --pretty=oneline


*   bec03fb5c4e72fc77cb1858e1e4aca27c59a68df (HEAD -> master) Merge branch 'ocean-tamhum'

|\

| * cbbdd07696ba10a3f30199c560d30e55326c6e5b (ocean-tamhum) ocean_tamhum_file commit

* |   2a87bbf0b37f97bbe9e330d2c8587bb1278c83ff Merge branch 'jungle-tamhum'

|\ \

| * | dea6c3080bd52cd5525bb24f5ae933956f140e64 (jungle-tamhum) jingle_jungle_file commit

| |/

* | 415aaa229e58e7f8f12c15e955e30080f3fa8158 master_of_master_file commit

|/

* 1d1f5e88686d83641cbed5506bd1f5b9391b508d jungle-tamhum_file commit

* b04f52e7f24b467b5ab48c70684310c130ef69be 2nd_file commit

* 2643e8b8ee6ec634883cffe386e1d678f83d85c9 1st_file commit

* e9b7bc8a07a23f12e402b19068156f77e71fc6b2 initial commit

 

이런 식으로 가지가 뻗어나가고 다시 병합되고 하는 모습을 잘 보여주어서 자주 사용하게 됩니다.

git log --graph --pretty=oneline의 결과 값

git의 히스토리를 좀 더 편하게 보는 법을 알아보았습니다.

제가 공부하면서 작성 한 내용이라서 맞지 않는 부분이 있거나 부족한 부분이 있을 수 있습니다. 혹시 발견하시고 알려주시면 조속히 수정하겠습니다 ^^


공감 눌러주시면 안 그래도 행복한 하루가 더 행복한 하루가 됩니다!

구독하기 눌러주시면 제 글이 발행되면 더 빨리 보실 보실 수 있어요~!

그럼 오늘도 감사합니다!

By 정글탐험


 

반응형