특정 날짜 범위 내의 커밋 보기

Beginner

This tutorial is from open-source community. Access the source code

소개

Git 은 개발자가 코드베이스에 적용된 변경 사항을 추적할 수 있도록 해주는 강력한 버전 관리 시스템입니다. Git 의 가장 유용한 기능 중 하나는 특정 날짜 범위 내의 커밋을 볼 수 있는 기능입니다. 이는 버그를 추적하거나 프로젝트의 히스토리를 이해하는 데 도움이 될 수 있습니다.

Git 리포지토리 복제 (Cloning the Git Repository)

Git 의 날짜 범위 필터링 기능을 탐색하기 위해 먼저 작업할 Git 리포지토리가 필요합니다. LabEx 에서 제공하는 git-playground 리포지토리를 사용하겠습니다.

리포지토리를 복제하는 것부터 시작해 보겠습니다.

  1. LabEx VM 에서 터미널을 엽니다.
terminal
  1. 다음 명령을 실행하여 리포지토리를 복제합니다.
git clone https://github.com/labex-labs/git-playground

다음과 유사한 출력을 볼 수 있습니다.

Cloning into 'git-playground'...
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 8 (delta 0), reused 8 (delta 0), pack-reused 0
Receiving objects: 100% (8/8), done.
  1. 리포지토리 디렉토리로 이동합니다.
cd git-playground

이제 로컬 머신에 리포지토리가 있으므로 커밋 히스토리를 탐색할 수 있습니다.

기본 Git Log 명령어 탐색

이제 리포지토리를 복제했으므로 git log 명령어를 사용하여 커밋 히스토리를 보는 방법을 알아보겠습니다.

git log 명령어는 가장 최근 커밋부터 시작하여 리포지토리의 모든 커밋 목록을 표시합니다. 각 커밋 항목에는 다음이 포함됩니다.

  • 고유한 커밋 해시 (식별자)
  • 작성자 정보
  • 커밋 날짜 및 시간
  • 커밋 메시지

기본 커밋 히스토리를 살펴보겠습니다.

git log

다음과 유사한 출력을 볼 수 있습니다.

commit d22f46ba8c2d4e07d773c5126e9c803933eb5898 (HEAD -> master, origin/master, origin/feature-branch, origin/HEAD)
Author: Hang <huhuhang@users.noreply.github.com>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file2.txt

commit cf80005e40a3c661eb212fcea5fad06f8283f08f
Author: Hang <huhuhang@users.noreply.github.com>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file1.txt

commit b00b9374a7c549d1af111aa777fdcc868d8a2a01
Author: Hang <huhuhang@gmail.com>
Date:   Wed Apr 26 14:16:00 2023 +0800

    Initial commit

출력이 길 경우 다음을 사용하여 탐색할 수 있습니다.

  • Space 키를 눌러 앞으로 이동
  • b 키를 눌러 뒤로 이동
  • q 키를 눌러 로그 보기 종료

각 커밋에는 고유 식별자 (긴 16 진수 문자열), 작성자 정보, 커밋 날짜 및 시간, 그리고 변경 사항을 설명하는 메시지가 있습니다.

특정 날짜 범위 내의 커밋 보기

이제 특정 날짜를 기준으로 커밋을 필터링하는 방법을 배우겠습니다. Git 은 이 목적을 위해 두 가지 유용한 옵션을 제공합니다.

  • --since 또는 --after: 특정 날짜 이후의 커밋을 표시합니다.
  • --until 또는 --before: 특정 날짜 이전의 커밋을 표시합니다.

이러한 옵션을 결합하면 특정 날짜 범위 내의 커밋을 볼 수 있습니다.

2023 년 4 월 25 일부터 2023 년 4 월 27 일 사이에 발생한 모든 커밋을 살펴보겠습니다.

git log --since='Apr 25 2023' --until='Apr 27 2023'

이 명령어는 2023 년 4 월 25 일부터 4 월 27 일 사이에 만들어진 모든 커밋을 표시합니다. 출력은 다음과 같아야 합니다.

commit d22f46ba8c2d4e07d773c5126e9c803933eb5898 (HEAD -> master, origin/master, origin/feature-branch, origin/HEAD)
Author: Hang <huhuhang@users.noreply.github.com>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file2.txt

commit cf80005e40a3c661eb212fcea5fad06f8283f08f
Author: Hang <huhuhang@users.noreply.github.com>
Date:   Wed Apr 26 14:16:25 2023 +0800

    Added file1.txt

commit b00b9374a7c549d1af111aa777fdcc868d8a2a01
Author: Hang <huhuhang@gmail.com>
Date:   Wed Apr 26 14:16:00 2023 +0800

    Initial commit

Git 은 다음과 같은 다양한 날짜 형식을 허용합니다.

  • "YYYY-MM-DD" (예: 2023-04-25)
  • "Month DD YYYY" (예: Apr 25 2023)
  • "DD Month YYYY" (예: 25 Apr 2023)

다른 날짜 범위 내에 커밋이 있는지 확인하기 위해 다른 날짜 형식을 시도해 보십시오.

git log --since='2023-04-20' --until='2023-04-24'

해당 기간 동안 커밋이 없으면 이 명령어가 결과를 반환하지 않을 수 있으며, 이는 정상입니다.

상대 날짜 및 형식 옵션 사용

Git 은 또한 최근 활동을 빠르게 볼 수 있도록 매우 편리한 상대 날짜를 지원합니다.

지난 12 주 동안의 모든 커밋을 살펴보겠습니다.

git log --since='12 weeks ago'

이 명령을 실행하는 시점에 따라 해당 기간 내에 있는 모든 커밋 또는 일부 커밋만 볼 수 있습니다.

기타 유용한 상대 날짜 형식은 다음과 같습니다.

  • "X days ago"
  • "X months ago"
  • "yesterday"
  • "last week"

지난 1 년 동안의 커밋을 살펴보겠습니다.

git log --since='1 year ago'

이 명령어는 지난 1 년 동안 이루어진 모든 커밋을 표시합니다.

추가 형식 옵션

Git log 는 출력을 사용자 정의하기 위한 다양한 형식 옵션을 제공합니다. 몇 가지 유용한 옵션은 다음과 같습니다.

  1. 각 커밋을 한 줄로 표시하는 보다 간결한 로그를 표시하려면:
git log --oneline --since='Apr 25 2023' --until='Apr 27 2023'

출력은 다음과 같습니다.

d22f46b (HEAD -> master, origin/master, origin/feature-branch, origin/HEAD) Added file2.txt
cf80005 Added file1.txt
b00b937 Initial commit
  1. 각 커밋에서 변경된 파일을 보려면:
git log --name-status --since='Apr 25 2023' --until='Apr 27 2023'

이 명령어는 각 커밋에서 수정된 파일의 상태를 표시하며, 변경된 내용을 이해하는 데 도움이 될 수 있습니다.

이러한 형식 옵션은 날짜 필터와 결합하여 프로젝트의 히스토리를 보다 효과적으로 이해하는 데 도움이 되는 강력한 쿼리를 만들 수 있습니다.

요약

이 랩에서는 Git 을 사용하여 특정 날짜 범위 내의 커밋을 보는 방법을 배웠습니다. 다음 내용을 살펴보았습니다.

  • Git 저장소를 로컬 머신으로 복제하는 방법
  • 기본 git log 명령을 사용하여 커밋 기록을 보는 방법
  • --since--until 옵션을 사용하여 특정 날짜 범위를 기준으로 커밋을 필터링하는 방법
  • 보다 유연한 필터링을 위해 "12 weeks ago"와 같은 상대 날짜를 사용하는 방법
  • 형식 옵션을 사용하여 git log 출력을 사용자 정의하는 방법

이러한 기술은 프로젝트 기록을 이해하고, 버그를 추적하고, 코드베이스의 개발 타임라인을 검토하는 데 필수적입니다. Git 을 계속 사용하면서 이러한 필터링 기술은 대규모 저장소에서도 쉽게 탐색하는 데 도움이 될 것입니다.