낙서장이자 오답 노트이자 컨닝 페이퍼
Git을 공부해보자: 분석과 디버깅(log, diff, blame, bisect) 본문
인프런에서 "제대로 파는 Git & GitHub - by 얄코"를 보고 정리한 내용입니다!
git log
git log 옵션들
각 커밋마다의 변경사항 함께 보기
git log -p

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

통계와 함께 보기
git log --stat
- 더 간략히: --shortstat

한 줄로 보기
git log --oneline
- --pretty=oneline --abbrev-commit의 줄임말

변경사항 내 단어 검색
git log -S (검색어)
- George로 검색

커밋 메시지로 검색
git log --grep (검색어)

자주 사용되는 그래프 로그 보기
git log --all --decorate --oneline --graph
- --all: 모든 브랜치 보기
- --graph: 그래프 표현
- --decorate: 브랜치, 태그 등 모든 레퍼런스 표시
- --decorate=no
- --decorate=short: 기본
- --decorate=full

로그 포맷팅
로그를 포맷팅 할 수 있다.
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
alias로 사용하기
git config --global alias.lg "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"
git lg

git diff
변경사항을 확인하는 명령어
git diff 옵션들
워킹 디렉토리의 변경사항 확인
git diff

파일명만 확인
git diff --name-only

스테이지의 확인
git diff --staged
- --cached와 같음

커밋 간의 차이 확인
git diff (커밋1) (커밋2)
- 커밋 해시 또는 HEAD 번호로
- 현재 커밋과 비교하려면 이전 커밋만 명시

브랜치 간의 차이 확인
git diff (브랜치1) (브랜치2)

git blame
각 라인의 작성자를 확인한다.
git blame 옵션들
파일의 부분별로 작성자 확인
git blame (파일명)

특정 부분 지정해서 작성자 확인
git blame -L (시작줄) (끝줄, 또는 +줄수) (파일명)

GitLens
깃렌즈를 사용하면 간단하게 볼 수 있다.

git bisect
이진 탐색 알고리즘으로 문제의 발생 시점을 찾아낸다.
이진 탐색 시작
git bisect start
오류 발생 지점임을 표시
git bisect bad
의심 지점으로 이동
git checkout (해당 커밋 해시)
오류 발생 않을 시 양호함 표시
git bisect good
💡참고사항
원인을 찾을 때까지 반복: git bisect good/bad
이진 탐색 종료
git bisect reset'git & github' 카테고리의 다른 글
| Git을 공부해보자: GitHub 잘 사용하기 (리드미, 풀 리퀘스트, 이슈, 오픈소스) (2) | 2023.12.01 |
|---|---|
| Git을 공부해보자: Git 추가 기능 (Hooks, Submodules) (0) | 2023.11.30 |
| Git을 공부해보자: Branch 보다 깊이 알기 (0) | 2023.11.29 |
| Git을 공부해보자: 태그 (1) | 2023.11.29 |
| Git을 공부해보자: 취소, 되돌리기 깊이 알기 (1) | 2023.11.29 |