[GIT] GIT을 선택하다. - 3편 LOG활용하기

2021. 1. 11. 11:00 형상관리/Git

LOG활용하기

모든 버전관리 시스템에서 가장 중요한 부분은 이력입니다. 저장소 이력을 잘 사용하면 원하는 정보를 얻을 수 있습니다. 파일 자체의 로그를 확인 할 수도 있고 코드 수정이력도 조회할 수 있습니다. 또한 파일의 리비전에 대한 차이점을 볼 수도 있습니다.

GIT 로그 살펴보기

저장소에 어떤 변화가 있었는지 알려고 한다면 일반적으로 커밋로그를 살펴봅니다. git은 각 커밋의 로그를 누가, 언제 커밋했는지 보여줍니다.

git log
commit 5e5c78f555d71936ab7af768e0020107d3489116
Author: uyeong21c
Date: Sat Oct 27 16:52:52 2012 +0900
add the selecton of an about page
:

화면 하단의 콜론(:)은 출력결과가 더 남아 있음을 의미 합니다. git log의 기본 출력은 네가지 정보를 보여줍니다. 커밋명, 작성자, 날짜, 로그메시지가 그것 입니다.

리비전 범위 지정하기

코드를 작성했는데 정확한 시작일과 시간을 모를시 또 그때의 로그를 보고 싶을때 범위를 지정해 로그를 볼 수 있습니다. 지난 다섯시간 동안의 커밋만 보려면 –since=“5 hours”를 추가하고 다섯시간 동안의 커밋을 제외하고 보려면 –before=“5 hours”를 추가 하면 됩니다. –since와 –before 옵션에는 날짜를 표현할 수 있는 영어식 표현을 작성할 수 있습니다.

오래된리비전 - 최신리비전 범위를 지정 할 수도 있습니다.

버전간 차이점 자세히 보기

git diff 명령어를 활용해 이력을 볼 수 있습니다. 이 git diff를 태그와 함께 이용하면 리리즈 사이의 통계를 내는데 매우 유용합니다. git diff에 태그를 이용하면 얼마나 많은 줄이 변경되었고 얼마나 많이 제거 되었는지도 알 수 있습니다. 이 명령어를 stat과 함께 하용하면 더욱 멋진 기능이 됩니다. 이는 변경사항에 대한 통계를 출력해 줍니다.

git diff --stat 1.0

누구 책임인지 찾기

프로젝트의 어떤 파일에서 엉뚱한 위치에 둔 한줄 혹은 열줄 짜리 코드블럭을 찾고 있다고 하겠습니다. 아니면 중첩된 조건문이 잔뜩 존재하여 리팩토리앟려고 생각 중일 수도 있습니다. 이런 경우 파일의 로그를 보고 리비전간의 차이를 살피는 것이 도움이 될 수도 있습니다. 하지만, 특정 코드블럭에 대한 정보가 필요하다면 더 유용한 명령어가 있습니다. git blame이 그것인데 이는 파일의 각 줄 앞에 커밋명 커밋한 사람 시간정보를 추가하여 보여줍니다.

git blame hello.html

 

출처: https://redgolems.tistory.com/7?category=481635 [레드골렘즈 콤비의 개발이야기]