CHAPTER08. 분석하고 디버깅하기
LESSON26. 로그 자세히 알아보기
커밋에서 변경 내역까지 같이 보려면 git log명령 뒤에 -p를 붙임
출력 결과를 보면 커밋 내역 하나하나에 어떤 내용이 바뀌었는지를 확인할 수 있음git log -p
최근 커밋 몇개만 확인하려면 git log명령 뒤에 -와 확인할 커밋 갯수를 입력
git log -갯수
git log명령에 -p옵션을 -갯수 와 같이 붙이면 최근 숫자 갯수만큼의 커밋과 변경내역까지 함께 볼수있음
git log -p -갯수
git log 명령에 --stat옵션을 붙임
각 커밋의 상세내용은 보여주지 않지만 어떤 파일이 변했는지 변경내역을 볼 수 있음git log --stat
더 간략한 결과를 보려면 git log --shortstat명령을 입력
git log --shortstat
로그를 한 줄로 보려면 git log명령에 --oneline옵션을 붙임
단순하게 커밋마다 한줄씩만 태그와 커밋 메시지를 나타냄git log --oneline
**--oneline옵션은 결과를 한 줄로 보여주는 --pretty=oneline옵션과 커밋 해시값을 짧게 나타내는 --abbrev-commit옵션을 합쳐 줄인것**
특정 커밋의 변경 사항에 있는 단어로 커밋을 검색하려면 git log 명령 뒤에 -S옵션을 붙이고 검색어를 입력
작업 내역에 있는 커밋 해시값을 복사해서 커밋을 살펴보거나 리버트 같은 작업을 할 수 있음git log -S 찾을 단어
커밋 메시지를 기준으로 검색하려면 git log명령 뒤에 --grep옵션을 붙이고 검색어를 입력
git log --all --grep "찾을 단어"
프로젝트의 분기 등 작업 내역으 ㄹcli에서 그래프 형태로 나타내기
git log --all --decorate --oneline --graph
--all은 모든 브랜치 표시
--graph는 그래프 모양을 표현
--decorate는 브랜치나 태그 등 모든 레퍼런스를 표시(기본값은 --decorate=short)
--decorate=no : 출력 결과에 브랜치나 태그 등 레퍼런스가 나타나지 않음
--decorate=full : 레퍼런스를 더욱 상세하게 출력
git log 명령의 조회 범위를 제한하는 옵션
author는 원래 작업을 수행한 원작자
committer는 마지막으로 이 작업을 적용한(저장소에 포함시킨)사람을 가리킴
|옵션|설명|
|--|--|
|--since,--after|명시한 날짜 이후의 커밋만 검색|
|--untill,--before|명시한 날짜 이전의 커밋만 조회|
|--author|입력한 저자의 커밋만 보여줌|
|--committer|입력한 커미터의 커밋만 보여줌|
Lesson27. 변경 사항 확인하기
git diff명령어는 기본적을 작업 디렉터리의 변경 사항을 확인하는데 쓰임
몇가지 변경사항을 만들고 git diff명령으로 변경사항 확인
git diff
변경 사항이 발생한 파일 목록만 확인하려면 git diff명령에 --name-only옵션을 붙임
git diff --name-only
git add .명령으로 현재 변경사항을 스테이징 하고, 스테이지 영역에 넘어간 변경사항을 확인하려면 git diff명령에 --staged옵션을 붙임
git diff --staged
git diff --staged대신에 git diff --cached로 입력해도 동일한 결과가 출력 스테이지되어 있는 변경된 파일 목록만 보려고 하면 git diff --staged --name-only를 입력
커밋간의 내용차이도 확인 가능
git reset --hard로 변경사항을 없앰
git diff 명령뒤에 두 커밋의 해시값을 각각 입력헤드번호로 비교할 커밋의 위치를 지정할 수도있음
git diff HEAD
9 HEAD10브랜치간의 변경사항 차이도 확인 가능
git log --all --decorate --oneline --graph
main과 다른 브랜치의 변경사항 비교
git diff main 다른 브랜치
Lesson28. 누가 코딩했는지 알아내기
git blame명령과 파일명을 입력하면 출력결과에 각 코드 행별로 누가 이 행의 코드를 작성했는지 사용자 이름을 확인할 수 있음
git blame 파일명
파일에서 특정부분만 지정해서 작성한사람을 확인 가능
git blame -L 시작행,끝행 파일명
작성자를바로 확인할 수있는 플러그인->gitlens
Lesson29. 오류가 발생한 시점 찾아내기
git bisect는 이진 탐색이라는 방법으로 오류발생 지점을 찾아내는 명령->범위를 절반씩 좁혀서 오류의 원인을 찾음
git bisect start명령으로 이진탐색 시작
문제가 발생한 지점을 표시하기 위해 git bisect bad명령을 입력
해당 커밋 해시로 이동하기 위해 git checkout명령 사용
문제가 발생하지 않은 지점에서는 양호하다는 의미로 git bisect good명령으로 표시
원인을 찾을때 까지 git bisect good/bad명령을 반복하면서 이진 탐색을 진행
이진 탐색을 종료하고 초기 상태로 되돌리기 위해서는 git bisect reset명령어를 사용
이진 탐색을 시작하는 git bisect start를 입력->오류 발생 확인->git bisect bad명령으로 오류지점임을 표시
git bisect start
git bisect bad의심되는 지점의 해시값을 복사하고 git checkout명령으로 해당 커밋으로 이동
git checkout 의심되는 지점의 해시값
오류가 발생하지않으면 git bisect good명령으로 표시
git bisect good
git bisect명령을 적용한 결과 자동으로 중간지점으로 head를 움직임
오류가 난 곳엔 git bisect bad표시
git bisect bad
오류가 나지 않은 상태면 git bisect good명령을 실행하면 최초로 오류가 난 지점을 알려줌
git bisect good
git bisect명령을 반복해서 문제를 찾아내고 해결하면 git bisect reset명령으로 main브랜치로 돌아옴
git bisect reset
외워서 써먹는 깃 명령어
01. 다른 브랜치에서 원한는 부분만 가져오기
다른 브랜치 커밋 가져오기
git cherry-pick 커밋 해시값
도착 브랜치에서 파생된 출발 브랜치를 이동할 브랜치로 옮겨 붙이기
git rebase--onto
대상 브랜치의 마디를 하나로 묶어 main브랜치로 가져오기
git merge --squash
02. 로그 자세히 알아보기
각 커밋마다 변경 사항 함께 보기
git log -p
최근 n개 커밋만 보기
git log -갯수
최근 n개 커밋을 변경 사항과 함께 보기
git log -p -갯수
커밋 변경 내역 보기
git log --stat
커밋마다 태그와 커밋 메시지를 한줄씩 보기
git log --oneline
변경사항에서 단어 검색하기
git log -S 검색어
커밋 메시지를 기준으로 검색하기
git log --grep "검색어"
자주 사용하는 그래프로 로그 보기
git log --all --decorate --oneline --graph
03. 차이 살펴보기
작업 디렉터리에서 변경 사항 확인하기
git diff
변경된 파일 목록 확인하기
git diff --name-only
스테이지 영역으로 넘어간 변경사항 확인하기
git diff --staged
커밋 간 차이 비교하기
git diff 비교대상1해시값 비교대상2해시값
브랜치간 차이 비교하기
git diff 브랜치1 브랜치2
04. 누가 코딩했는지 알아내기
파일의 부분별로 작성자 확인하기
git blame 파일이름
특정 부분을 지정해서 작성자 확인하기
git blame -L 시작줄 끝줄(또는 줄수) 파일이름
05. 오류가 발생한 시점 찾아내기
이진 탐색 시작 /종료
git bisect start/reset
오류발생지점/양호 지점 표시
git bisect bad/good
오류 의심 지점 이동하기
git checkout 의심지점해시값
'깃' 카테고리의 다른 글
CHAPTER 07. 브랜치 더 깊게 파기-얄코의 too much 친절한 깃&깃허브 (0) | 2024.07.06 |
---|---|
얄코의 too much 친절한 깃&깃허브 (0) | 2024.07.03 |
얄코의 too much 친절한 깃&깃허브-Chaper05. 깃을 더 깊게 이해하기 (0) | 2024.06.29 |
얄코의 too much 친절한 깃&깃허브 - Chapter04.깃허브 사용하기 (0) | 2024.06.27 |
얄코의 too much친절한 깃&깃허브-Chapter3. 차원 넘나들기 (0) | 2024.06.22 |