[Git]git log/diff/blame/bisect

zzincode·2024년 12월 10일

Git GitHub

목록 보기
12/17
post-thumbnail

📝 git log

저장소의 커밋 히스토리를 시간 순으로 보기

  • 각 커밋의 해시, 저자 이름, 저자 이메일, 커밋한 날자, 커밋 메시지
git log

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

git log -p

최근 n개 커밋만 보기

git log -(n)

최근 n개 커밋을 변경사항과 함께 보기

git log -p -(n) 

통계와 함께 보여주기

어떤 파일이 수정됐는지, 얼마나 많은 파일이 변경됐는지, 얼마나 많은 라인이 추가하거나 삭제했는지

git log --stat

더 간략하게 보여주기

git log --shortstat

한 줄로 보기

git log --oneline

변경사항 내 단어 검색

git log -S (검색어)

커밋 메시지로 검색

Git log --grep (검색어)

--pretty=oneline --abbrev-commit 의 줄임

내가 설정한 포맷

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

포매팅 옵션들

단축키 설정해서 사용하기


✅ git diff

파일 간의 변경 내용을 비교하고 차이를 보여주는 명령어

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

git diff

파일명만 확인

git diff --name-only

스테이지의 확인

git diff --staged

커밋간의 차이 확인

git diff (커밋1) (커밋2)
  • 커밋 해시 or HEAD 번호
  • 현재 커밋과 비교하려면 이전 커밋만 명시

브랜치 간의 차이 확인

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

👩🏻‍💻 코딩한 사람 알아내기

각 라인의 작성자 확인하는 명령어 git blame

파일의 부분별로 작성자 확인

git blame (파일명)

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

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

+) VS code 확장프로그램 사용 : GitLens


🐞 오류 발생 시점 찾기

이진 탐색 알고리즘으로 문제의 발생 지점 찾는 명령어 git bisect

1. 이진 탐색 시작

git bisect start

2. 오류 발생 지점임을 표시

git bisect bad

3. 오류 발생 의심 지점으로 이동

git checkout (의심 지점 커밋 해시)

4. 해당 커밋 오류 유무 표시

  • 오류가 있을 경우
    git bisect good
  • 오류가 없을 경우
    git bisect bad

→ 오류가 있는 커밋과 오류가 없는 커밋 사이의 중간 커밋으로 checkout됨.
git bisect good/bad을 원인 찾을 때가지 반복하여 오류가 발생한 커밋을 찾는다.

5. 이진 탐색 종료

git bisect reset

+) Vi 입력모드
위로 스크롤 k
아래 스크롤 j
끄기 :q
저장 후 끄기 :wq

0개의 댓글