이번 시간에는 github log관리법을 알아보겠습니다.
시작 전 잠깐 사진처럼 여러분들이 push 할 때 node_moduls까지 딸려 오는 경우가 있습니다. 이경우. gitnore에서 제외시키지 않은 문제인데
이 사이트에는 내가 개발하는 언어에 어떤 것을 제외하고 넣어야할지 .gitnore 파일내용을 정리해주는 사이트입니다.
기본적으로 저장소에 그냥넣는 거보다 어떤 것을 제외할지 정리하고 넣는 것을 추천합니다.
git log
git log 를 했을 때 화면입니다. 저는 최근 3번 push를 했는데 이렇게 push 할 때마다 log가 남게 됩니다.
git log -p -2
git log 명령어의 -p 옵션과 -[숫자]를 명시하면 숫자는 -2 와 같이 사용되고, 최근 몇개의 내역을 보여줄 것인가를 설정하는 부분이고 -p옵션은 각 커밋의 diff 결과를 보여줍니다.
코드가 긴경우 스페이스바를 눌러서 다른 log 도 보여줍니다.
git log --stat
git log --stat옵션을 사용하면 각 커밋의 통계를 보여줍니다. 얼마나 많은 파일이 몇 줄이나 수정되거나 추가 삭제되었는지를 보여주며 마지막에 요약정보를 보여줍니다.
git log --pretty
--pretty 옵션으로 여러가지 형식으로 기록보기
--pretty 옵션과 부가 옵션을 추가하면 사용하는 기본 형식 이외의 다양한 형식으로 기록을 볼 수 있습니다. online 옵션은 하나의 커밋을 체크섬과 커밋 메시지만 을 가지고 한 줄로만 표현합니다.
short, full, fuller 옵션은 각각 단계에 따라 정보들을 추가적으로 자세히 보여줍니다.
format 옵션으로 나만의 형식으로 보기
format 옵션과 추가 표현 옵션을 사용하여 내가 원하는 형식으로 바꾸어 볼 수 있습니다.
format 형식에 사용할 수 있는 옵션
옵션 | 설명 |
%H | 커밋 해시 |
%h | 단축 커밋 해시 |
%T | 트리 해시 |
%t | 단축 트리 해시 |
%p | 부모 해시 |
%P | 단축 부모 해시 |
%an | 저자 이름 |
%ae | 저자 메일 |
%ad | 저자 시간(-date 옵션) |
%ar | 저자 상대 시간(ex: 5days ago) |
%cn | committer 이름 (커밋한 사람) |
%ce | committer 메일 (커밋한 사람) |
%cd | committer 시간 |
%cr | commiter 상대 시간(ex: 5days ago) |
%s | 요약 |
포멧 옵션에서 저자와 커밋터의 차이는 저자의 경우 실제 작업을 수행하는 사람이고 커밋터는 실제 저장소에 커밋한 사람입니다.
--graph 옵션을 통한 커밋 기록을 그래프 형식으로 보기
복잡한 텍스트 보다 그림이나 도형을 통해 한눈으로 알아볼 수 있게 하려면 --graph 옵션 몇가지 ASCII 문자를 이용해 커밋 내역을 그래프로 표현해 보여줍니다.
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은 사용자가 원하는 형식으로 출력하고자 할 때 사용하며 형식 옵션이 추가로 필요하다. |
git log 조건 범위로 기록 조회하기
git log의 몇 가지 옵션을 통해 조건을 주어 일부분의 커밋 기록만을 조화할 수 있습니다. 나중에 커밋이 몇 만개가 된다면 모든 기록을 출력해 보면 원하는 정보를 뽑아내기 힘들기 떄문에 원하는 정보를 보다 빠르게 캐치하기 위해 조건 범위 검색 옵션이 유용할 것입니다.
이미 위해서 살펴 보았는데 -[숫자] 옵션은 -3 과 같이 몇 개의 커밋 기록을 조회하고 싶은지를 표현 할 수 있고, --since와 --until
같이 시간을 기준으로 하는 옵션을 이용하여 특정 날짜를 지정할 수 있습니다.
예를 들어 2021-09-14 같이 지정하거나 , 1years 15day 3minutes ago 같은 상대적 시간도 지정 가능합니다.
$ git log --since=2.weeks #지난 2주 동안 커밋 기록
또한 -author 옵션으로 저자를 지정하거나 --committer 옵션으로 커밋터를 지정할 수 있고 --grep 옵션으로 커밋 메시지를 조건 으로 검색할 수 있습니다. 모두 만족하는 커밋을 찾으려면 --all-match 옵션을 사용합니다.
유용한 옵션으로는 -S 가 있는데 이 옵션은 추가, 삭제된 내용중 특정 텍스트가 포함되어 있는지를 검색합니다. 예를 들어 계산 함수를 어떤 커밋에서 반영했는지 검색하는 경우 git log -S'calc(int a)'와 같이 검색할 수 있습니다.
마지막으로 파일의 경로를 통해 검색하는 경우 git log -- 경로1 경로2 와 같이 -- 와 이어서 사용하며, 명령어 끝부분에 사용합니다.
옵션 | 설명 |
--숫자 | 최근 n 개의 커밋만 조회한다. |
--since, --after | 명시한 날짜 이후의 커밋만 검색한다. |
--until, --before | 명시한 날짜 이전의 커밋만 조회한다. |
--author | 입력한 저자의 커밋만 보여준다. |
--committer | 입력한 커미터의 커밋만 보여준다. |
--grep | 커밋 메시지 안의 텍스트를 검색한다. |
-S | 커밋 변경(추가/삭제) 내용 안의 텍스트를 검색한다. |
Reference
'프론트 엔드 > GIT' 카테고리의 다른 글
[GIT] Git 바로잡기! 듀토리얼(4).Merge이해하기 (0) | 2021.09.14 |
---|---|
[GIT] Git 바로잡기! 듀토리얼 (2) - Git 시작하기 레포지토리 생성 (0) | 2021.09.14 |
[GIT] Git 바로잡기! 듀토리얼 (1) - Git 설치 및 세팅 법 (0) | 2021.09.14 |