(git & GitHub) Analyze and Debug

Mirrer·2022년 5월 10일
0

git & GitHub

목록 보기
11/15
post-thumbnail

Log의 옵션

log의 옵션들을 활용한 다양한 사용법

log명령어는 커밋 히스토리를 조회할 수 있다.

이 때 log에 옵션을 사용하면 다양한 변경사항들을 추가로 확인할 수 있다.


옵션 종류

  • 각 커밋의 변경사항 함께 확인
git log -p
  • 최근 n개 커밋 확인
git log -(갯수)
  • 통계와 함께 확인
git log --stat
  • 한 줄로 확인
git log --oneline
  • 변경사항 내 단어 검색
git log -S (검색어)
  • 커밋 메시지로 검색
git log --grep (검색어)
  • 자주 사용되는 그래프 로그 확인
git log --all --decorate --oneline --graph

--all : 모든 브랜치 보기
--graph : 그래프 표현
--decorate : 브랜치, 태그 등 모든 레퍼런스 표시
--decorate = no
--decorate=short : 기본
--decorate = full

Diff

diff는 파일 변경 내용의 차이점을 비교

diff는 어떤 파일의 수정 내용을 비교하는 명령어다.

아무런 옵션 없이 사용하게 되면 워킹 디렉터리에 Unstaged 된 파일을 비교한다.


사용 방법

  • 워킹 디렉토리 변경사항 확인
git diff
  • 파일명 확인
git diff --name-only
  • 스테이지 확인
git diff --staged
  • 커밋간 차이 확인 (커밋 해시 또는 HEAD 번호)
git diff (커밋1) (커밋2)
  • 브랜치간 차이 확인
git diff (브랜치1) (브랜치2)

Blame

blame은 각 라인의 작성자를 확인

blame은 프로젝트에서 코드를 누가 수정했는지 또는 어떤 커밋으로 수정이 되었는지 확인할 수 있다.

blame명령어 외에도 VS CodeGitLens 확장 플러그인을 사용하면 더 간편하게 코드의 작성자를 확인할 수 있다.


사용 방법

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

Bisect

bisect는 이진 탐색 알고리즘으로 문제의 발생 시점을 찾아낸다.

bisect명령어는 커밋 히스토리의 오류를 이진 탐색 방법으로 탐색한다.

그래서 오류와 관련된 커밋을 빠르게 찾아내 수정할 수 있다.


오류 해결 순서

  1. 이진 탐색 시작
git bisect start
  1. 오류발생 지점 표시
git bisect bad
  1. 의심 지점으로 이동
git checkout (해당 커밋 해시)
  1. 오류 발생 여부 표시
오류 발견
git bisect bad

오류 미발견
git bisect good
  1. 원인을 찾을 때까지 1 ~ 4과정 반복

  2. 이진 탐색 종료

git bisect reset

참고 자료

Book - Git
Do it! 지옥에서 온 문서 관리자 깃 & 깃허브 입문

profile
memories Of A front-end web developer

0개의 댓글