프로젝트를 진행하다가 특정 커밋에서 무엇을 추가했는지 알고 싶을 때나, 프로젝트를 진행하면서 공부를 할 때 어떤 파일에 어떤 코드가 추가되었는지 등등을 알아보려면 커밋의 내용을 조회하는 방법을 아는 것이 필요합니다. 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 커밋 내용 요약입니다.
좀 더 많은 옵션이 있습니다. 아래 링크에서 확인 가능합니다.
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의 히스토리를 좀 더 편하게 보는 법을 알아보았습니다.
제가 공부하면서 작성 한 내용이라서 맞지 않는 부분이 있거나 부족한 부분이 있을 수 있습니다. 혹시 발견하시고 알려주시면 조속히 수정하겠습니다 ^^
공감 눌러주시면 안 그래도 행복한 하루가 더 행복한 하루가 됩니다!
구독하기 눌러주시면 제 글이 발행되면 더 빨리 보실 보실 수 있어요~!
그럼 오늘도 감사합니다!
By 정글탐험
'IT knowledge' 카테고리의 다른 글
vim 플러그인 설치하기 with vim-plug (2) | 2021.02.06 |
---|---|
vim-fugitive git을 vim과 편하게 쓰고 싶다면 (2) | 2021.02.05 |
아이폰 단축어앱으로 아이폰 자동화 하기 (3) | 2021.01.25 |
git merge (병합)에 대한 기초. (8) | 2021.01.24 |
git local repository와 remote repository 연결하기 (11) | 2021.01.23 |