반응형
Git 로그 다양한 사용법
옵션들을 활용한 다양한 사용법
git log -p
- 각 커밋마다 변경사항을 함께 볼 수 있다.
git log -(갯수)
- 최근 n개의 커밋만 보는 기능
git log --stat
- 통계와 함께 보기 (더 간략하게 보는 방식은
--shortstat
)
git log --oneline
- 로그를 한 줄로 보기 (
--pretty=oneline --abbrev-commit
의 줄임말)
git log -S (검색어)
- 변경사항 내 단어 검색 (예시 :
git log -S George
)
git log --grep (검색어)
- 커밋 메시지로 검색
- 제한된 옵션은 https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%BB%A4%EB%B0%8B-%ED%9E%88%EC%8A%A4%ED%86%A0%EB%A6%AC-%EC%A1%B0%ED%9A%8C%ED%95%98%EA%B8%B0#limit_options 를 참고하자.
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 지정을 통해 사용한다.
- https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EA%B8%B0%EC%B4%88-%EC%BB%A4%EB%B0%8B-%ED%9E%88%EC%8A%A4%ED%86%A0%EB%A6%AC-%EC%A1%B0%ED%9A%8C%ED%95%98%EA%B8%B0#pretty_format 에서 커스텀 옵션을 살펴볼 수 있다.
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"
- 커스텀은 다음과 같이 alias를 설정하면 된다.
git diff
different의 약자로 변경사항을 확인하는 명령어이다.
git diff
- 워킹 디렉토리의 변경사항 확인
git diff --name-only
- 파일명만 확인
git diff --staged
- 스테이지 확인 (
--cached
와 동일하다.)
git diff (커밋1) (커밋2)
- 커밋 해시 또는 HEAD 번호로 커밋 간의 차이를 확인할 수 있다. 현재 커밋과 비교하려면 이전 커밋만 명시해도 가능하다.
git diff (브랜치1) (브랜치2)
- 브랜치 간의 차이도 확인할 수 있다.
누가 코딩했는지 알아내기 (blame)
git blame (파일명)
- 파일의 부분별로 작성자 확인하기
git blame -L (시작줄) (끝줄, 또는 +줄수) (파일명)
- 특정 부분 지정해서 작성자 확인하기 (
git blame -L 10,12 whoCodedThis.txt
,git blame -L 10,+3 whoCodedThis.txt
)
vscode 의 경우 GitLens 확장 프로그램을 설치하면 편리하게 볼 수 있다.
오류가 발생한 시점 찾아내기 (bisect)
이진탐색을 통해 버전 별 오류 발생 지점을 탐색하는 기법 (good / bad 를 이진 탐색으로 반복해가며 원인 찾기)
git bisect start
- 이진 탐색 시작
git bisect bad
- 오류발생 지점임을 표시
git checkout (해당 커밋 해시)
- 의심 지점 이동
git bisect good
- 오류 발생지점이 아닌 양호함을 표시
git bisect reset
- 이진 탐색 종료
본 포스팅은 '인프런 - 제대로 파는 Git & GitHub - by 얄코' 강의를 보고 정리한 내용입니다.
반응형