0Pricing
DevOps Bootcamp · 강의

저장소 유지 관리 및 정리

`git gc`와 `git prune` 같은 명령어를 사용하여 로컬 Git 저장소를 정리하고 최적화하는 방법을 배우세요.

저장소 유지 관리 및 정리은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

Git 저장소 정리 시작하기

시간이 지나면 로컬 Git 저장소에 불필요한 파일이 쌓여 효율이 떨어질 수 있습니다. 지저분한 방과 비슷하다고 생각해 보세요!

이 수업에서는 git gc와 git prune 같은 강력한 명령을 사용해 Git 저장소를 정리하고 최적화하는 방법을 배웁니다. 이렇게 하면 프로젝트가 원활하게 실행됩니다.

Git 객체 저장소 이해하기

먼저 Git이 데이터를 저장하는 방식을 알아보겠습니다. Git은 프로젝트 이력을 다음과 같은 '객체'의 연속으로 저장합니다.

  • 블롭: 파일 내용
  • 트리: 디렉터리와 그 내용
  • 커밋: 특정 시점의 프로젝트 스냅샷
  • 태그: 특정 커밋을 가리키는 포인터

이 객체는 '느슨한 객체'로 저장되거나 효율성을 위해 '팩 파일'로 압축될 수 있습니다.

`git gc`(가비지 컬렉션) 소개

git gc 명령은 '가비지 컬렉션'을 의미합니다. Git에 내장된 저장소 정리 및 최적화 도구입니다.

주요 작업은 다음과 같습니다.

  • 느슨한 객체 패키징: 개별 객체를 하나의 팩 파일로 압축합니다.
  • 도달할 수 없는 객체 정리: 일정 기간이 지나면 어떤 커밋, 브랜치 또는 태그에서도 더 이상 참조하지 않는 객체를 삭제합니다.
  • 오래된 팩 파일 제거: 오래된 압축 객체 파일을 삭제합니다.

이 과정으로 저장소의 크기가 줄고 속도가 빨라집니다.

`git gc` 실행하기(일반적인 사용법)

언제든 git gc를 수동으로 실행할 수 있습니다. Git은 푸시나 가져오기처럼 특정 작업을 수행할 때 백그라운드에서 이 명령을 자동으로 실행하기도 합니다.

일반적으로 안전하게 실행할 수 있지만, 대규모 정리를 수행하기 전에는 복구해야 할 미커밋 작업이 없는지 확인하는 것이 좋습니다.

터미널에서 실행해 보세요.

git gc

`git gc` 출력 이해하기

git gc를 실행하면 다음과 비슷한 출력이 표시됩니다.

Counting objects: 1234, done. Compressing objects: 100% (987/987), done. Writing objects: 100% (1234/1234), done. Total 1234 (delta 567), reused 0 (delta 0) Removing duplicate objects: 100% (256/256), done. Pruning objects: 100% (123/123), done.

이 출력은 Git이 객체를 패키징하고, 새 팩 파일을 작성하며, 오래되어 도달할 수 없는 객체를 정리(삭제)하고 있음을 보여 줍니다. 숫자는 저장소의 상태에 따라 달라집니다.

`git prune`에 집중하기

git gc는 다양한 정리 작업을 처리하지만, git prune은 특히 '매달린' 객체나 '도달할 수 없는' 객체를 제거하는 작업을 담당합니다.

  • 매달린 객체: 저장소에는 존재하지만 어떤 커밋, 브랜치 또는 태그에서도 더 이상 참조하지 않으며, 팩 파일에도 포함되지 않은 객체입니다.
  • 도달할 수 없는 객체: 매달린 객체와 비슷하지만 더 넓은 의미의 용어입니다. 기록을 다시 작성하는 리베이스나 재설정 후처럼 다양한 이유로 이러한 객체가 생길 수 있습니다.

git prune은 기본 만료 시간(보통 2주)보다 오래된 객체를 삭제합니다.

`git prune` 직접 실행하기

일반적으로 git gc가 git prune을 호출하므로 git prune을 직접 실행할 필요는 없습니다. 하지만 더 집중적인 정리에 사용할 수 있습니다.

아무것도 실제로 삭제하지 않고 git prune이 수행할 작업을 확인하려면 --dry-run 옵션을 사용합니다.

git prune --dry-run

만료 시간을 지정하여 정리하기

기본적으로 git prune(및 git gc의 정리 단계)은 2주보다 오래된 객체만 제거합니다. --expire 옵션을 사용하면 이 설정을 재정의할 수 있습니다.

예를 들어 되돌릴 필요가 없다고 확신하는 실험적인 리베이스 후처럼, 아주 최근에 생성된 매달린 객체까지 적극적으로 정리하려는 경우에 유용합니다.

예를 들어 1일보다 오래된 객체를 정리하려면 다음과 같이 실행합니다.

git prune --expire=1.day

`git reflog expire`와 구분하기

git prune과 git reflog expire을 혼동하지 않는 것이 중요합니다. 둘 다 정리와 관련 있지만 목적은 서로 다릅니다.

  • git prune: 객체 데이터베이스에서 실제 Git 객체(블롭, 트리, 커밋)를 삭제합니다.
  • git reflog expire: reflog(HEAD가 있었던 위치의 로컬 기록)에 있는 항목을 정리합니다. 따라서 특정 커밋을 찾기 어려워지지만 객체 자체를 삭제하지는 않습니다.

기록을 수정하거나 정리 명령을 실행할 때는 항상 주의하시기 바랍니다!

정리 상태 확인

다음 중 git gc의 주요 역할을 가장 잘 설명하는 것은 무엇입니까?

요약 및 다음 단계

축하합니다! 이제 Git 저장소를 깔끔하고 효율적으로 유지하는 방법을 배웠습니다.

  • git gc: 가비지 수집, 객체 패키징 및 정리를 한 번에 수행하는 명령입니다.
  • git prune: 설정된 만료 기간보다 오래된 도달할 수 없는 객체와 매달린 객체를 집중적으로 찾아 제거합니다.

정기적으로 유지 관리하면 Git 작업 흐름을 원활하게 유지하고 저장소가 과도한 디스크 공간을 차지하지 않도록 할 수 있습니다. 계속 잘해 보세요!

자주 묻는 질문

“저장소 유지 관리 및 정리” 강의는 무료인가요?

네 — “저장소 유지 관리 및 정리” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

“저장소 유지 관리 및 정리”에서 뭘 배우나요?

`git gc`와 `git prune` 같은 명령어를 사용하여 로컬 Git 저장소를 정리하고 최적화하는 방법을 배우세요. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“저장소 유지 관리 및 정리” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Git Reflog 및 기록 복구
  2. 디버깅을 위한 Git Bisect
  3. 저장소 유지 관리 및 정리
  4. git filter-repo로 기록 다시 작성하기
← DevOps Bootcamp(으)로 돌아가기