Storybook 설치 문서를 (작성 당시 storybook v.8.3.6
) 보니 npx degit
으로 스토리북 템플릿을 클론 받도록 가이드 하고 있습니다.
degit은 GitHub 등의 원격 저장소에서 특정 레포지토리의 템플릿 복사본(clone)만 가져오는 CLI 도구입니다. 이 과정에서 Git 이력(commit history)를 제외한 파일들만 복사합니다. 즉, 간단히 말해 레포지토리의 스냅샷을 다운로드하는 데 사용합니다.
기본적으로는 master
브랜치를 복사해오지만, 특정 브랜치나 태그를 복사해올 수도 있습니다.
degit user/repo#dev # branch
degit user/repo#v1.2.3 # release tag
degit user/repo#1234abcd # commit hash
1. 불필요한 Git 이력 제거
기본 git clone
명령은 모든 커밋 이력을 포함합니다. 하지만 스토리북 처럼 템플릿을 사용하거나 빠르게 복사본만 가져올 때는 이력이 불필요할 수 있습니다.
degit
은 오직 최신 스냅샷 파일들만 가져옵니다.
2. 빠른 템플릿 초기화
여러 프로젝트에서 초기 설정이 필요할 때, 템플릿으로 시작하는 것이 편리합니다. 예를 들어, React, Next.js, Storybook과 같은 프로젝트를 시작할 때 공식 템플릿을 빠르게 가져올 수 있습니다.
3. 간편한 사용법
git clone
명령과 달리 degit
은 명령어가 단순하고 빠릅니다. 복잡한 설정 없이도 쉽게 레포지토리를 복사할 수 있습니다.
// 예: 스토리북 템플릿 복사 명령어
npx degit chromaui/intro-storybook-react-template taskbox
1) degit 설치
npm install -g degit
(npm 아니더라도 사용하고 있는 다른 패키지 매니저 사용 가능)
2) 패키지 설치
degit 패키지명
npx degit 패키지명
항목 | degit | git clone |
---|---|---|
커밋 이력 포함 | ❌ 포함되지 않음 | ✅ 모든 커밋 이력 포함 |
브랜치/태그 복사 | ✅ 특정 브랜치, 태그, 커밋 복사 가능 | ✅ 모든 브랜치와 태그 복제 |
전체 브랜치 접근 | ❌ 불가능 (지정한 브랜치만 복사) | ✅ 모든 브랜치와 태그 다운로드 가능 |
다운로드 데이터 양 | 작음 (지정된 파일 스냅샷만 복사) | 큼 (이력과 메타데이터 모두 포함) |
복사 속도 | 빠름 (최소한의 데이터만 복사) | 느림 (이력과 브랜치 수에 따라 증가) |
레포지토리 초기화 | .git 폴더 없음 → 필요 시 git init 사용 | .git 폴더와 이력 자동 포함 |
네트워크 트래픽 | 적음 (최신 스냅샷만 가져옴) | 많음 (전체 이력과 브랜치 포함) |
사용 목적 | 빠른 템플릿 초기화 또는 특정 커밋 복사 | 협업 프로젝트 복제 및 이력 유지 |
예시 명령어 | npx degit user/repo#branch my-app | git clone https://github.com/user/repo.git |
새 프로젝트를 빠르게 초기화할 때:
공식 템플릿이나 팀 템플릿을 사용해 빠르게 시작할 수 있습니다.
불필요한 이력 없이 깨끗한 복사본을 사용할 때:
프로토타입 개발, 실습 환경, 개인 프로젝트 등에서 유용합니다.
템플릿 관리가 필요한 경우:
동일한 환경으로 여러 프로젝트를 시작하는 팀에 적합합니다.
destination directory is not empty, aborting. Use --force to override.
라고 나오면 degit이 설치 되지 않은 것이니 설치부터 하자!😇