반응형
1. Git 로그 다양한 사용법
1.1. 옵션들을 활용한 다양한 사용법
<code />
git log -p
- 각 커밋마다 변경사항을 함께 볼 수 있다.
<code />
git log -(갯수)
- 최근 n개의 커밋만 보는 기능
<code />
git log --stat
- 통계와 함께 보기 (더 간략하게 보는 방식은
--shortstat
)
<code />
git log --oneline
- 로그를 한 줄로 보기 (
--pretty=oneline --abbrev-commit
의 줄임말)
<code />
git log -S (검색어)
- 변경사항 내 단어 검색 (예시 :
git log -S George
)
<code />
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 를 참고하자.
<code />
git log --all --decorate --oneline --graph
- 자주 사용되는 그래프 로그 보기
--all
: 모든 브랜치 보기--graph
: 그래프 표현--decorate
: 브랜치, 태그 등 모든 레퍼런스 표시--decorate=no
--decorate=short
: 기본--decorate=full
<code />
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 에서 커스텀 옵션을 살펴볼 수 있다.
<code />
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를 설정하면 된다.
1.2. git diff
different의 약자로 변경사항을 확인하는 명령어이다.
<code />
git diff
- 워킹 디렉토리의 변경사항 확인
<code />
git diff --name-only
- 파일명만 확인
<code />
git diff --staged
- 스테이지 확인 (
--cached
와 동일하다.)
<code />
git diff (커밋1) (커밋2)
- 커밋 해시 또는 HEAD 번호로 커밋 간의 차이를 확인할 수 있다. 현재 커밋과 비교하려면 이전 커밋만 명시해도 가능하다.
<code />
git diff (브랜치1) (브랜치2)
- 브랜치 간의 차이도 확인할 수 있다.
1.3. 누가 코딩했는지 알아내기 (blame)
<code />
git blame (파일명)
- 파일의 부분별로 작성자 확인하기
<code />
git blame -L (시작줄) (끝줄, 또는 +줄수) (파일명)
- 특정 부분 지정해서 작성자 확인하기 (
git blame -L 10,12 whoCodedThis.txt
,git blame -L 10,+3 whoCodedThis.txt
)
vscode 의 경우 GitLens 확장 프로그램을 설치하면 편리하게 볼 수 있다.
1.4.
1.5. 오류가 발생한 시점 찾아내기 (bisect)
이진탐색을 통해 버전 별 오류 발생 지점을 탐색하는 기법 (good / bad 를 이진 탐색으로 반복해가며 원인 찾기)
<code />
git bisect start
- 이진 탐색 시작
<code />
git bisect bad
- 오류발생 지점임을 표시
<code />
git checkout (해당 커밋 해시)
- 의심 지점 이동
<code />
git bisect good
- 오류 발생지점이 아닌 양호함을 표시
<code />
git bisect reset
- 이진 탐색 종료
본 포스팅은 '인프런 - 제대로 파는 Git & GitHub - by 얄코' 강의를 보고 정리한 내용입니다.
반응형