본문 바로가기
Util/Git

Git 사용법 정리 5 - log, diff, blame, bisect

by hongdor 2022. 3. 30.
728x90

제대로 파는 Git & GitHub - by 얄코 - 인프런 | 강의 (inflearn.com)

 

제대로 파는 Git & GitHub - by 얄코 - 인프런 | 강의

코알못도 따라올 수 있는 친절하고 쉬운 강좌! 현업 개발자는 Git 박사로 들어주는 끝판왕 강좌!, - 강의 소개 | 인프런...

www.inflearn.com

 

해당 내용은 얄코님의 강의를 제가 필요한 내용만 정리한 것입니다.

직접 실습하면서 강의를 들으시는 것을 강력 추천드립니다.

얄코님의 허락을 받고 작성합니다.

 

-------------------------------------------------------------------------------------------------------------------------------

 

 

1. 특수 병합

git cherry-pick (commit hash) 다른 브랜치에서 원하는 커밋만 따오기
git rebase --onto (도착브랜치) (출발 브랜치) (이동할 브랜치) 다른 브랜치에서 파생된 가지 브랜치만 옮기기
git merge --squash (브랜치명) 
git commit
다른 가지의 마디들 묶어서 가져오기
(브랜치 분기 내역이 사라진다)

 

 

2. 협업을 위한 브랜치 활용법(gitflow)  
https://nvie.com/posts/a-successful-git-branching-model/
브랜치 용도
main 제품 출시/배포
develop 다음 출시/배포를 위한 개발 진행
release 출시/배포 전 테스트 진행(QA)
feature 기능 개발

 

 

3. 로그

git log -p 커밋마다 변경사항 함께보기
git log -(숫자) 최근 커밋 n개 보기
git log --stat 변경사항 파일 목록 함께보기
git log --oneline 한줄로 보기
git log -S (검색어) 변경 사항 내 단어 검색
git log --grep (검색어) 커밋 메세지 검색
git log --all --decorate --oneline --graph 로그 그래프 보기
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 얄코님이 만드신 로그 그래프 포맷

 

 

4. log 차이 살펴보기

git diff 파일의 변경사항 확인
git diff --staged stage된 것 변경점 확인
git diff --staged --name-only stage된 것 중 변경된 파일이름만 확인
git diff (commit hash1) (commit hash2) 커밋간의 차이 확인
git diff (브랜치1) (브랜치2) 브랜치간 차이 확인

git diff --name-only HEAD~3 HEAD~6 이런 식으로도 활용 가능

 

 

5. 누가 코딩했는지 알아내기

git blame (파일명)

git blame -L (시작줄) (끝줄, 또는 +줄수) (파일명)

 

 

6. 실행 오류가 발생한 시점 찾아내기

(1) git bisect start : 오류 탐색 시작 선언

(2) git bisect bad / git bisect good : 현재 커밋의 에러 상태 기록

(3) git checkout (해당 커밋해시) : 과거 커밋으로 돌아가서 상태 확인

(4) 반복

728x90

댓글