[Git] Git을 통한 분석 및 디버깅(log, diff, blame, bisect)

WOOK JONG KIM·2022년 12월 22일
0

Git&GitHub

목록 보기
16/19
post-thumbnail

Git log

1. 각 커밋마다의 변경사항 함께 보기

git log -p

2. 최근 n개 커밋만 보기
git log -(갯수)

3. 통계와 함께 보기
git log --stat

4. 한 줄로 보기
git log --oneline

5. 변경사항 내 단어 검색
git log -S (검색어)

6. 커밋 메세지를 중심으로 검색
git log --grep (검색어)

7. 그래프 로그로 보기
git log --all --decorate --oneline --graph

포맷된 로그 사용 예시

git log --graph --all --pretty=format:'%C(yellow) %h  %C(reset)%C(blue)%ad%C(reset) : %C(white)%s %C(bold green)-- %an%C(reset) %C(bold red)%d%C(reset)' --date=short

차이 살펴보기(diff)

현재 워킹 디렉토리의 변경사항 확인

git diff

변경된 파일 명 확인

git diff --name-only

스테이지의 변경 상황 확인

git diff --staged

커밋간의 차이 확인

git diff (커밋1) (커밋2)
-> ex) git diff caee1bb8960c236a579a3a4bee3f32282940078c 1e0599ad257813b4491ac875f145d89b706e1f76
-> git diff HEAD~2 HEAD~10

브랜치간 차이 확인

git diff (브랜치1) (브랜치2)

ex) git diff main fruit


각 라인을 누가 코딩했는지 보기

git blame -> 각 라인의 작성자 파악 가능

git blame (파일명)

특정 부분 지정해서 작성자 확인

git blame -L (시작줄) (끝줄, 또는 +줄수) (파일명)

ex) git blame -L 10,12 whoCodedThis.txt

git lens 확장 프로그램 설치 시 , 줄에 커서를 대면 작성자가 바로 나타남


오류 발생한 시점 파악하기

이진 탐색 알고리즘으로 문제의 발생 시점을 찾아냄

git bisect

여러 커밋에서 어느 커밋부터 에러가 발생했는지
-> 버전을 하나씩 되돌아가면서 실행해보기엔 시간 오래 걸림

v3에서 오류가 시작됬을거라 추정
-> 계속 반으로 짤라서 탐색하여 오류 시점 파악

원인을 찾을때 까지 git bisect good or bad를 입력

탐색 종료 : git bisect reset

profile
Journey for Backend Developer

0개의 댓글