--- title: Rich-Harris/degit — git history 없는 template 클론 도구 (Svelte/SvelteKit 표준) source_type: official-doc url: https://github.com/Rich-Harris/degit archive_url: status: raw confidence: high tags: [ca-tmpl, scaffolding, sample-removal, degit, sveltekit, official-doc] related_projects: [ca-tmpl] related_branches: [feature-sample-removal-adoption-contract] created: 2026-05-22 last_reviewed: 2026-05-27 --- # Rich-Harris/degit — git history 없는 template 클론 도구 (Svelte/SvelteKit 표준) > Layer: `raw/official-docs/` — `Rich-Harris/degit` GitHub README 발췌. JS 진영의 사실상 표준 scaffolding (SvelteKit `npm create svelte@latest` 가 내부 의존). ca-tmpl Group H — Sample removal / adoption 의 대안 3 (history 없는 단순 clone) 의 1차 근거. ## Parent / 활용 branch (필수) | Branch | 이 자료가 정당화하는 결정 | |---|---| | [[raw/branch-notes/feature-sample-removal-adoption-contract]] | Group H 대안 3 — degit clone 모델이 ca-tmpl 의 "clone 후 removal step" 모델과 비교되는 가장 가벼운 baseline 근거 | 상위 프로젝트: [[raw/project-notes/ca-skeleton-operational-contract]]. ## 컨텍스트 / 왜 저장했는지 ca-tmpl sample removal / adoption 결정 대안 3. degit은 "git history 없이 template repo를 그대로 클론"하는 가장 가벼운 scaffolding. Svelte/SvelteKit `npm create svelte@latest`가 내부적으로 의존. ca-tmpl이 "skeleton clone 후 sample 제거 step"을 명시한 것과 달리, degit은 "clone = adoption 끝". ## 출처 / Source - 원본 URL: https://github.com/Rich-Harris/degit - 아카이브 URL: (미수집) - 저자/조직: Rich Harris (Svelte / SvelteKit 작성자) - Star 수: 7,500+ - 라이선스: MIT - 마지막 확인일: 2026-05-27 ## 핵심 인용 / Key quotes (verbatim) > [§README — Definition] "Straightforward project scaffolding. degit makes copies of git repositories. When you run degit some-user/some-repo, it will find the latest commit on https://github.com/some-user/some-repo and download the associated tar file to ~/.degit/some-user/some-repo/commithash.tar.gz if it doesn't already exist locally." > [§README — Speed] "This is much quicker than using git clone, because you're not downloading the entire git history." > [§README — No history] "Unlike git clone, it doesn't pull down the entire commit history." > [§README — References] "You can use any tag, branch or commit reference." ## Claims Extracted / 추출된 주장 | Claim ID | Claim (이 자료가 직접 말하는 것) | Evidence quote | Strength | Applies to | Does not prove | |---|---|---|---|---|---| | SCAF-DG-C1 | degit 은 "straightforward project scaffolding" 으로, git repository 의 복사본을 만들며 `degit some-user/some-repo` 실행 시 GitHub 상 최신 commit 의 tar 파일을 `~/.degit///.tar.gz` 로 다운로드 (캐시) | [§README — Definition] "Straightforward project scaffolding. degit makes copies of git repositories. When you run degit some-user/some-repo, it will find the latest commit on https://github.com/some-user/some-repo and download the associated tar file to ~/.degit/some-user/some-repo/commithash.tar.gz if it doesn't already exist locally." | `official-vendor-doc` | template 저장소 clone (history 불필요) | private repo / 인증된 endpoint 에서도 동일하게 동작한다는 뜻은 아님 (인용은 public GitHub 경로 한정) | | SCAF-DG-C2 | degit 은 git history 전체를 다운로드하지 않으므로 `git clone` 보다 훨씬 빠르다 | [§README — Speed] "This is much quicker than using git clone, because you're not downloading the entire git history." | `official-vendor-doc` | 큰 repo / 반복 scaffolding 시 속도 이득 평가 | 모든 네트워크 환경에서 "much quicker" 의 정량적 차이가 동일하다는 뜻은 아님 | | SCAF-DG-C3 | `git clone` 과 달리 degit 은 전체 commit history 를 가져오지 않는다 | [§README — No history] "Unlike git clone, it doesn't pull down the entire commit history." | `official-vendor-doc` | template 으로부터 history 없는 새 프로젝트 초기화 | degit 결과 디렉토리가 `.git/` 을 포함한다는 뜻은 아님 — 별도 `git init` 필요 | | SCAF-DG-C4 | degit 은 tag / branch / commit reference 를 사용할 수 있다 | [§README — References] "You can use any tag, branch or commit reference." | `official-vendor-doc` | 특정 버전의 template snapshot 으로 clone | semver range / dynamic resolution 같은 패키지 매니저 수준의 reference 해석을 지원한다는 뜻은 아님 | ## Usage Boundaries / 적용 경계 - **이 자료가 직접 증명하는 것**: - `SCAF-DG-C1`: degit 의 정의 + 캐시 경로 동작 모델 - `SCAF-DG-C2`: `git clone` 대비 속도 우위 (history 미다운로드) - `SCAF-DG-C3`: 결과물이 commit history 를 포함하지 않는다는 사실 - `SCAF-DG-C4`: tag / branch / commit reference 지원 - **이 자료가 증명하지 않는 것**: - degit 이 변수 치환 / placeholder rename 을 지원한다는 뜻 아님 (단순 복제) - SvelteKit `npm create svelte@latest` 가 내부 의존이라는 사실 — 본 README 인용에 명시되지 않음 (외부 지식) - ca-tmpl 의 sample-on / sample-off matrix 가 degit 만으로 자동화된다는 뜻은 아님 (외부 script 결합 필요) - degit 자체가 sample 제거 / 7-step adoption checklist 항목을 자동화한다는 뜻은 아님 - **내 프로젝트에 적용하려면 추가 확인이 필요한 것**: - ca-tmpl + degit 조합 시 sample-ticket 제거를 자동화할 별도 script (예: `npx degit ... && bash remove-sample.sh`) 의 위치 / 책임 분담 - private GitHub repo (사내 ca-tmpl) 에서의 degit 인증 메커니즘 - degit 결과 디렉토리에 `git init` 을 자동으로 붙일지 vs 사용자에게 위임할지 ## 메모 - 동작: `degit user/repo dest` → tarball 다운로드 → 디렉토리에 압축 해제. `.git/` 없음. - ca-tmpl과의 차이: degit은 "template 코드를 그대로 복제"하므로 sample-ticket까지 복제됨 → ca-tmpl 2-step removal(profile toggle → package remove)이 그대로 필요. degit은 removal을 자동화하지 않음. - 강점: scaffolding 자체는 매우 단순 (1 command). ca-tmpl이 degit + 별도 removal script 조합으로 가는 길 가능. - 약점: 변수 치환·옵션 분기가 없음. Cookiecutter/Yeoman 같은 generator 기능 부재. ca-tmpl 7-step adoption checklist는 외부 도구 또는 수동. - dual-mode CI matrix와 호환성: 무관. degit은 단순 복제기. - 신뢰도: Svelte/SvelteKit 공식 scaffolding이 의존하는 도구. JavaScript 진영에서 사실상 표준. official-doc 등급. ## Related / 관련 - 같은 주제 다른 official-doc (Group H — Sample removal / adoption 대안 5종): - [[raw/official-docs/scaffolding-spring-initializr]] — 대안 4 (Spring Initializr) - [[raw/official-docs/scaffolding-cookiecutter-official]] — 대안 2 (Cookiecutter) - [[raw/official-docs/scaffolding-github-template-repository]] — 대안 5 (GitHub Template Repository) - 인용하는 branch: - [[raw/branch-notes/feature-sample-removal-adoption-contract]] - canonical contract 섹션: - [[raw/project-notes/ca-skeleton-operational-contract#Sample Removal / Project Adoption]] - 인용하는 wiki: (미작성)