Git 로그로 프로젝트 기록을 검사하는 방법

Git 로그로 프로젝트 기록을 검사하는 방법

Git이 제공하는 가장 기본적인 서비스 중 하나는 프로젝트 이력입니다. Git은 저장소 내에서 파일에 대한 모든 변경 사항을 추적하기 때문에 매우 강력한 로깅 기능을 제공할 수 있습니다. 다양한 방법으로 프로젝트의 이력을 조회할 수 있으며 유연한 하나의 명령을 사용하여 다양한 데이터를 추출하고 표시할 수 있습니다.





NS 자식 로그 명령은 거대하며 일반 Git 명령 중 가장 큽니다. 설명서는 2,500줄 이상입니다. 다행스럽게도, 자식 로그 몇 가지 주요 옵션에서 대부분의 가장 유용한 동작을 제공합니다.





기본 동작을 사용한 기본 로깅

기본적으로, 자식 로그 커밋의 역순 목록을 보여줍니다. 각 커밋에는 해시, 작성자, 날짜 및 커밋 메시지가 포함됩니다.





이 명령은 호출기(예: less, more)를 사용하여 전체 출력을 표시하므로 결과를 쉽게 탐색할 수 있습니다. Most pager 와 같이 원하는 프로그램을 사용하도록 Git을 구성할 수 있습니다.

다음은 git 로그 출력입니다. git 소스 코드의 저장소 그 자체:



commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano

결과는 커밋 해시( 670 ...) 다음에 현재 해당 커밋을 가리키는 분기 목록( 헤드 -> 마스터 , 등.)

ps2 컨트롤러를 pc에 연결하는 방법

다음 줄은 이 커밋의 작성자를 설명하고 이름과 이메일 주소를 제공합니다.





커밋의 전체 날짜와 시간은 다음 줄에 옵니다.

마지막으로 커밋 메시지의 전체 내용이 나타납니다. 명령줄 옵션을 사용하여 git log가 제공하는 다른 모든 것을 대부분 제어할 수 있습니다. 두 가지 주요 유형의 옵션이 있습니다.





  • Git이 각 커밋을 표시하는 방법을 정의하는 서식.
  • 커밋을 정의하는 필터링 자식 로그 포함합니다.

명령줄 옵션 외에도 git log는 파일, 커밋, 분기 또는 기타 유형의 참조를 지정하는 인수를 허용합니다. 이들은 추가 필터링을 적용합니다.

Git 로그 출력 형식 지정

가장 간단한 조정 중 하나는 --한 줄 매우 짧은 출력을 생성하는 옵션:

git log --oneline

이제 로그의 각 줄에는 약식 커밋 해시와 커밋 메시지 제목만 포함됩니다. 이것은 프로젝트에 대한 최근 커밋의 개요를 얻는 훌륭한 방법입니다.

불행히도 다른 컨텍스트가 없으면 이 정보가 항상 유용한 것은 아닙니다. 프로젝트에 대한 모호한 느낌을 줄 수 있지만 작성자 및 파일에 대한 날짜 및 기타 유용한 정보가 부족합니다.

분기 그래프 보기

NS --그래프 옵션을 사용하면 분기 간의 관계를 시각화할 수 있습니다. 매우 기본적이지만 복잡한 역사를 푸는 데 도움이 될 수 있습니다.

git log --oneline --graph

관련된: Git에서 새 분기를 만드는 방법

맞춤형 예쁜 출력

다음을 사용하여 세부적으로 지정하면 더 복잡한 형식을 얻을 수 있습니다. --예쁜 옵션. 구문은 매우 단순한 것에서 훨씬 더 복잡한 것으로 바뀌므로 자세한 내용은 설명서를 참조하십시오 .

인쇄 작업은 Windows 10을 삭제하지 않습니다
git log --pretty=short

본질적으로 다음과 같습니다. 자식 로그 날짜 또는 전체 메시지 없이:

git log --pretty=oneline

에 해당 자식 로그 --oneline .

git log --pretty=fuller

많은 세부 사항을 포함합니다. 이론상 다른 사람일 수 있는 작성자와 커미터도 분리합니다.

이랑 체재: 변형을 사용하면 다양한 데이터로 대체되는 자리 표시자를 포함하여 원하는 내용이 포함된 문자열을 제공할 수 있습니다. 다음은 자리 표시자의 몇 가지 예입니다.

  • %시간 커밋 해시
  • %시간 축약된 커밋 해시
  • %에게 저자 날짜
  • %와 함께 저자 날짜, 친척
  • %NS 커밋 메시지 제목
  • % NS 커밋 메시지 본문
  • %NS 축약된 상위 해시

출력에 고정 문자를 추가하고 색상을 지정할 수 있습니다. 이 예에서는 날짜 형식의 변형도 보여줍니다.

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

날짜를 괄호로 묶습니다. 어떤 형식을 선택하든 출력이 파이프라인이나 다른 형식의 텍스트 처리에 유용하게 하려면 출력의 각 부분을 구분하는 방법을 고려해야 합니다.

로그에 차이점 표시

저장소의 기록을 볼 때 중요한 세부 사항은 diff 자체입니다. 결국 코드에서 실제로 변경된 사항을 나타냅니다! 우선, 다음을 사용하여 각 커밋과 함께 변경 사항 요약을 얻을 수 있습니다. --shortstat :

git log --shortstat

이렇게 하면 다음과 같은 줄이 추가됩니다.

1 file changed, 48 insertions(+), 2 deletions(-)

각 커밋의 맨 아래로. 예를 들어 GitHub의 전체 페이지에서 이러한 종류의 요약을 자주 볼 수 있으며 특정 커밋의 범위를 빠르게 판단하는 데 유용한 방법입니다. 자세한 내용은 다음을 사용하여 전체 패치 출력(diffs)을 포함할 수 있습니다. -NS 깃발:

git log -p

Git 로그 출력 필터링

어떤 형식을 적용하든 현재 분기에 있는 모든 커밋의 전체 로그를 계속 볼 수 있습니다. Git이 페이지로 나누더라도 여전히 많은 출력이 될 수 있습니다. 다음 옵션을 사용하면 로그에 포함할 커밋을 사용자 지정할 수 있습니다.

금액 제한

가장 최근의 커밋 몇 개만 표시하도록 결과를 트리밍하려면 다음을 사용하십시오. -[숫자] 통사론:

git log -2

날짜로 제한

커밋 세트를 지정된 날짜 범위로 제한하려면 다음을 사용하십시오. --부터 ( --후에 ) 그리고 --까지 ( --전에 ) 옵션. 각각 ISO 8601 형식의 날짜를 사용합니다. 둘 중 하나를 사용할 수 있습니다. --부터 또는 --까지 단독으로 또는 둘 다 함께 사용하여 범위를 지정합니다. 옵션 --후에 그리고 --전에 동의어입니다.

git log --since='2021-01-01' --until='2021-05-01'

파일로 제한

Git 로그는 저장소의 모든 파일이 아닌 특정 파일에 집중할 수 있습니다. 이것은 특정 파일이 시간이 지남에 따라 어떻게 변경되었는지 알아내는 데 유용합니다. git 명령 끝에 파일 이름을 추가하기만 하면 됩니다.

git log filename

영향을 받은 커밋만 표시됩니다. 파일 이름 .

지점 간의 차이점

분기의 로그를 볼 때 몇 가지 고유한 요구 사항이 있을 수 있습니다. 예를 들어, 전체 기록을 보는 것보다 특정 분기에서 변경된 사항만 보고 싶을 수 있습니다. Git 로그는 다음을 통해 도움이 될 수 있습니다. ref1..ref2 통사론. 사용할 수 있는 세 가지 약간 다른 접근 방식이 있습니다.

  1. 메인에 있지만 브랜치에는 없는 커밋 보기: |_+_|
  2. 분기에 있지만 기본이 아닌 커밋 보기: |__+_|
  3. 브랜치나 메인에만 존재하는 커밋 보기: |_+_|

두 태그의 차이점

다음을 사용하여 분기 간의 기록을 볼 수 있는 것처럼 ref1..ref2 구문을 사용하면 동일한 방식으로 태그 간의 기록을 볼 수도 있습니다. 결국 태그와 분기는 모두 참조 유형입니다.

git log --oneline origin/branch..origin/main

더 큰 프로젝트에 대한 릴리스 정보를 준비하는 경우 자식 쇼트로그 첫 번째 호출 포트여야 합니다. 커밋 주제와 함께 작성자 목록을 생성합니다. git log와 유사한 방식으로 기록을 제한하기 위해 참조 범위를 전달할 수 있습니다.

git log --oneline origin/ main ..origin/ branch

NS 자식 표시 명령 보다 다재다능하다. 자식 로그 . 커밋 기록을 넘어 태그 및 기타 유형의 git 개체와 함께 작동할 수 있습니다. 그것은 많은 옵션을 공유합니다 자식 로그 , 하지만 더 낮은 수준의 세부 사항을 파헤쳐야 하는 경우에만 실제로 필요합니다.

Git 로그로 과거 검토

Git log는 복잡한 명령이지만 가장 기본적인 옵션을 통해 많이 사용할 수 있습니다. 리포지토리의 기록을 검색하는 것은 변경이 얼마나 자주 발생하고 얼마나 많은 사람들이 변경하는지 이해하는 훌륭한 방법입니다. 프로젝트의 히스토리를 잘 이해하고 나면 스스로 기여할 수 있는 좋은 위치에 있게 됩니다.

내 페이스북에 들어갈 수 없어
공유하다 공유하다 트위터 이메일 소셜 코딩 트렌드에 참여하고 GitHub 리포지토리에 기여

코딩 근육을 훈련하고 오픈 소스 프로젝트를 돕고 싶으십니까? GitHub에 기여하는 방법은 다음과 같습니다.

다음 읽기
관련 항목
  • 프로그램 작성
  • 깃허브
  • 코딩 팁
저자 소개 바비 잭(게시된 기사 58건)

Bobby는 거의 20년 동안 소프트웨어 개발자로 일한 기술 애호가입니다. 그는 게임에 열정적이며 Switch Player Magazine에서 리뷰 편집자로 일하고 있으며 온라인 출판 및 웹 개발의 모든 측면에 몰두하고 있습니다.

바비 잭이 참여한 작품 더보기

뉴스레터 구독

기술 팁, 리뷰, 무료 전자책 및 독점 거래에 대한 뉴스레터에 가입하십시오!

구독하려면 여기를 클릭하세요.