Git 브랜치 만료 여부 확인 방법

GitBeginner
지금 연습하기

소개

이 랩에서는 Git 브랜치가 오래되었는지 마지막 커밋 날짜를 검사하여 확인하는 방법을 배웁니다. 먼저, 기본적인 git log 명령을 사용하여 커밋 기록을 보고 브랜치의 마지막 커밋 날짜를 식별하는 것으로 시작합니다.

다음으로, 여러 브랜치의 마지막 커밋 날짜를 효율적으로 검색하기 위해 더 강력한 git for-each-ref 명령을 탐색합니다. 마지막으로, 어떤 브랜치가 오래되었다고 간주될 수 있는지 결정하기 위해 서로 다른 브랜치의 활동을 비교하는 방법을 배웁니다.

git log 로 마지막 커밋 날짜 확인

이 단계에서는 git log 명령을 사용하여 저장소의 마지막 커밋 날짜를 확인합니다. 이는 프로젝트의 기록을 이해하는 데 필수적인 기술입니다.

먼저, my-time-machine 디렉토리에 있는지 확인합니다. 그렇지 않은 경우, cd 명령을 사용하여 해당 디렉토리로 이동합니다.

cd ~/project/my-time-machine

이제 git log를 사용하여 커밋 기록을 살펴보겠습니다. 출력을 더 간결하게 만들고 커밋당 한 줄만 표시하는 옵션을 추가합니다. 이는 커밋이 많은 경우 매우 유용합니다.

git log --oneline

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

a1b2c3d (HEAD -> master) Send a message to the future

이 출력은 축약된 커밋 해시 (a1b2c3d), 해당 브랜치 (HEAD -> master), 그리고 커밋 메시지를 보여줍니다.

날짜와 시간을 포함한 더 자세한 정보를 보려면, 옵션 없이 git log 명령을 사용할 수 있습니다.

git log

출력은 이전 랩에서 본 것과 유사하며, 전체 커밋 세부 정보를 표시합니다.

commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Jane Doe <jane.doe@example.com>
Date:   Mon Aug 7 10:00:00 2023 +0000

    Send a message to the future

Date 줄은 커밋이 이루어진 시간을 보여줍니다. 이는 프로젝트의 진행 상황을 추적하고 변경 사항의 타임라인을 이해하는 데 매우 중요합니다.

git log를 이해하는 것은 프로젝트의 기록을 탐색하는 데 필수적입니다. 변경 사항이 언제 이루어졌는지, 누가 변경했는지, 그리고 변경 사항이 무엇에 관한 것인지 (커밋 메시지를 기반으로) 확인할 수 있습니다. 프로젝트가 성장함에 따라 이 로그는 디버깅, 협업 및 코드의 진화를 이해하는 데 매우 유용한 도구가 됩니다.

브랜치 활동 확인을 위한 git for-each-ref 사용

이 단계에서는 git for-each-ref라는 더 고급 Git 명령을 탐색하여 각 브랜치의 마지막 커밋 날짜를 포함한 브랜치에 대한 자세한 정보를 얻습니다. 이 명령은 스크립팅 및 Git 출력을 사용자 정의하는 데 매우 강력합니다.

여전히 ~/project/my-time-machine 디렉토리에 있는지 확인하십시오.

git for-each-ref 명령을 사용하면 저장소의 모든 참조 (브랜치 및 태그와 같은) 를 반복하고 지정된 형식으로 해당 정보에 대한 정보를 표시할 수 있습니다.

브랜치와 마지막 커밋 날짜를 나열하는 데 사용해 보겠습니다. 커미터 날짜와 브랜치 이름을 표시하도록 형식을 지정합니다.

git for-each-ref --sort=-committerdate refs/heads/ --format='%(committerdate:short) %(refname:short)'

이 명령을 자세히 살펴보겠습니다.

  • git for-each-ref: 명령 자체입니다.
  • --sort=-committerdate: 커미터 날짜를 기준으로 내림차순 (최신순) 으로 출력을 정렬합니다. committerdate 앞에 있는 하이픈 -은 내림차순을 나타냅니다.
  • refs/heads/: Git 에 로컬 브랜치인 refs/heads/ 아래의 참조만 보도록 지시합니다.
  • --format='%(committerdate:short) %(refname:short)': 출력 형식을 지정합니다.
    • %(committerdate:short): 커미터 날짜를 짧은 형식 (YYYY-MM-DD) 으로 표시합니다.
    • %(refname:short): 참조의 짧은 이름 (브랜치 이름) 을 표시합니다.

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

YYYY-MM-DD master

표시된 날짜는 이전 랩에서 생성한 커밋인 master 브랜치의 마지막 커밋 날짜입니다.

git log는 단일 브랜치 또는 몇 개의 커밋 기록을 보는 데 적합하지만, git for-each-ref는 구조화된 방식으로 여러 참조에 대한 특정 정보를 얻으려는 경우 유용합니다. 이는 많은 브랜치가 있는 더 큰 프로젝트에서 특히 유용합니다.

다양한 형식 옵션으로 git for-each-ref를 사용하는 방법을 이해하면 Git 저장소와 관련된 작업을 스크립팅하고 자동화하는 데 많은 가능성이 열립니다.

활성 브랜치 비교

이 단계에서는 git loggit for-each-ref에서 얻은 정보를 비교하고, 이들이 "활성" 브랜치 개념과 어떻게 관련되는지 이해합니다.

여전히 ~/project/my-time-machine 디렉토리에 있는지 확인하십시오.

git log는 기본적으로 현재 브랜치의 기록을 표시하고, git for-each-ref refs/heads/는 모든 로컬 브랜치에 대한 정보를 표시한다는 것을 확인했습니다. 현재의 간단한 저장소에는 master 브랜치 하나만 있으므로, 두 명령 모두에서 표시되는 마지막 커밋 날짜는 동일합니다.

git for-each-ref 명령을 다시 실행하여 출력을 다시 확인해 보겠습니다.

git for-each-ref --sort=-committerdate refs/heads/ --format='%(committerdate:short) %(refname:short)'

출력:

YYYY-MM-DD master

그리고 git log --oneline 명령:

git log --oneline

출력:

a1b2c3d (HEAD -> master) Send a message to the future

두 명령 모두 저장소의 마지막 활동 (마지막 커밋) 이 master 브랜치에서 이루어졌음을 확인하고, 해당 커밋의 날짜를 표시합니다.

여러 브랜치가 있는 실제 프로젝트에서 커미터 날짜별로 정렬된 git for-each-ref refs/heads/는 최근 활동이 있었던 브랜치를 빠르게 확인하는 방법입니다. 목록 상단의 브랜치는 가장 최근에 작업된 브랜치입니다.

이 출력을 특정 브랜치에서 git log의 출력과 비교하면 저장소의 전반적인 활동과 개별 브랜치의 특정 기록을 이해하는 데 도움이 됩니다.

예를 들어, feature-x라는 다른 브랜치가 있는 경우, git log feature-x --oneline을 실행하여 해당 특정 기록을 확인하고 마지막 커밋 날짜를 git for-each-ref에서 표시된 날짜와 비교할 수 있습니다.

모든 브랜치에서 최근 활동을 빠르게 확인할 수 있는 이 기능은 프로젝트 관리자 및 팀 리더가 개발 진행 상황을 파악하는 데 매우 유용합니다.

요약

이 랩에서는 Git 브랜치의 활동을 검토하여 Git 브랜치가 오래되었는지 확인하는 방법을 배웠습니다. 먼저, 커밋 기록을 보고 브랜치의 마지막 커밋 날짜를 구체적으로 식별하기 위해 기본적인 git log 명령을 사용했습니다. 이를 통해 최근 활동에 대한 기본적인 이해를 얻었습니다.

그런 다음, 모든 브랜치에 대한 자세한 정보 (마지막 커밋 날짜 포함) 를 검색할 수 있는 더 강력한 git for-each-ref 명령으로 넘어갔습니다. 이 명령은 여러 브랜치에서 활동을 체계적으로 평가하고 최근에 업데이트되지 않은 브랜치를 식별하는 데 특히 유용합니다.