[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"content:legacy:page:\u002Fposts\u002Fgit\u002Fdownload-specific-folder":3,"content:legacy:navigation":195,"content:legacy:surround:\u002Fposts\u002Fgit\u002Fdownload-specific-folder":524,"content:related-articles:Download a specific folder on GitHub repository":527},{"id":4,"title":5,"body":6,"category":176,"description":177,"duration":178,"extension":179,"icon":180,"image":181,"meta":184,"modifiedAt":180,"navigation":185,"path":186,"publishedAt":187,"seo":188,"sitemap":189,"stem":190,"tags":191,"updatedAt":193,"__hash__":194},"posts\u002Fposts\u002Fgit\u002Fdownload-specific-folder.md","Download a specific folder on GitHub repository",{"type":7,"value":8,"toc":170},"minimark",[9,14,18,22,27,52,56,61,78,83,87,92,101,105,109,128,132,137,141,146,155,159,163,166],[10,11,13],"h2",{"id":12},"introduction","🚀 Introduction",[15,16,17],"p",{},"When working with GitHub repositories, you may sometimes need to download specific folders without cloning the entire repository. This can be useful when you only need a subset of files or directories from a repository. There are several ways to achieve this, including using the GitHub web interface, the svn command, the GitHub API, third-party tools, GitHub CLI, and Git archive.",[10,19,21],{"id":20},"methods","🌿 Methods",[23,24,26],"h5",{"id":25},"_1-downloading-from-the-github-web-interface","1. Downloading from the GitHub Web Interface",[28,29,30,34,37,40],"ul",{},[31,32,33],"li",{},"Navigate to the repository on GitHub.",[31,35,36],{},"Browse to the folder you want to download.",[31,38,39],{},"Click on the folder to open it.",[31,41,42,43,47,48,51],{},"Click the ",[44,45,46],"strong",{},"\"Download\""," button or the ",[44,49,50],{},"\"Download ZIP\""," button if available. This method is limited as it often requires repository owners to set up releases or provide download links.",[23,53,55],{"id":54},"_2-using-the-svn-command","2. Using the svn Command",[28,57,58],{},[31,59,60],{},"You can use Subversion (SVN) to download specific folders. This method does not require cloning the entire repository.",[62,63,68],"pre",{"className":64,"code":65,"language":66,"meta":67,"style":67},"language-sh shiki shiki-themes github-light github-dark","svn export https:\u002F\u002Fgithub.com\u002Fowner\u002Frepo\u002Ftrunk\u002Fpath\u002Fto\u002Ffolder\n","sh","",[69,70,71],"code",{"__ignoreMap":67},[72,73,76],"span",{"class":74,"line":75},"line",1,[72,77,65],{},[28,79,80],{},[31,81,82],{},"Replace owner, repo, and path\u002Fto\u002Ffolder with the appropriate values.",[23,84,86],{"id":85},"_3-using-github-api","3. Using GitHub API",[28,88,89],{},[31,90,91],{},"You can use GitHub's API to download specific folders by fetching the contents of the folder as a ZIP file. This requires some scripting. Here is an example using curl and jq:",[62,93,95],{"className":64,"code":94,"language":66,"meta":67,"style":67},"curl -L https:\u002F\u002Fapi.github.com\u002Frepos\u002Fowner\u002Frepo\u002Fcontents\u002Fpath\u002Fto\u002Ffolder | jq -r '.[] | select(.type == \"file\") | .download_url' | xargs -n 1 curl -O\n",[69,96,97],{"__ignoreMap":67},[72,98,99],{"class":74,"line":75},[72,100,94],{},[28,102,103],{},[31,104,82],{},[23,106,108],{"id":107},"_4-using-third-party-tools","4. Using Third-Party Tools",[28,110,111],{},[31,112,113,114],{},"There are various third-party tools available that can help you download specific folders from GitHub repositories:\n",[28,115,116,122],{},[31,117,118,121],{},[44,119,120],{},"GitZip",": A web-based tool that allows you to download specific folders or files from GitHub.",[31,123,124,127],{},[44,125,126],{},"DownGit",": Another web-based tool that lets you generate download links for specific folders or files in a GitHub repository.",[23,129,131],{"id":130},"_5-using-github-cli","5. Using GitHub CLI",[28,133,134],{},[31,135,136],{},"Although GitHub CLI does not natively support downloading specific folders, you can use it in combination with other tools or scripts to achieve the same result.",[23,138,140],{"id":139},"_6-using-git-archive","6. Using Git Archive",[28,142,143],{},[31,144,145],{},"Git has an archive command that can be used to create a tarball of the repository, but it does not support partial checkouts or downloading specific folders directly. However, you can use it in a way that helps you achieve similar results by scripting",[62,147,149],{"className":64,"code":148,"language":66,"meta":67,"style":67},"git archive --remote=https:\u002F\u002Fgithub.com\u002Fowner\u002Frepo.git HEAD:path\u002Fto\u002Ffolder | tar -xvf -\n",[69,150,151],{"__ignoreMap":67},[72,152,153],{"class":74,"line":75},[72,154,148],{},[28,156,157],{},[31,158,82],{},[10,160,162],{"id":161},"conclusion","🤝 Conclusion",[15,164,165],{},"Each method has its own advantages and limitations, so you can choose the one that best fits your needs.",[167,168,169],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":67,"searchDepth":171,"depth":171,"links":172},2,[173,174,175],{"id":12,"depth":171,"text":13},{"id":20,"depth":171,"text":21},{"id":161,"depth":171,"text":162},"git","Detect specific folder without cloning the entire repository from GitHub","3","md",null,{"src":182,"alt":183},"https:\u002F\u002Fraw.githubusercontent.com\u002Ffullstack-core\u002Fblog\u002Frefs\u002Fheads\u002Fmain\u002Fblog\u002Fcover\u002Fdownload_specific_folder.webp","GitHub_downloaded_specific_folder_img",{},true,"\u002Fposts\u002Fgit\u002Fdownload-specific-folder","2025-02-27",{"title":5,"description":177},{"loc":186,"lastmod":187},"posts\u002Fgit\u002Fdownload-specific-folder",[176,192],"github","2026-09-21T22:25:07+07:00","-4dyDsZOwlFH37fpErIy6aXHiLCMSo_hquWsR__udTA",[196,344,452,467],{"title":197,"icon":198,"path":199,"stem":200,"children":201,"page":212},"Posts","fluent-color:data-bar-vertical-ascending-24","\u002Fposts","posts",[202,213,231,254,264,278,288,298,308,334],{"title":203,"icon":204,"redirect":205,"path":206,"stem":207,"children":208,"page":212},"Database","material-icon-theme:database","\u002Fposts\u002Fdatabase\u002Freplication-strategy","\u002Fposts\u002Fdatabase","posts\u002Fdatabase",[209],{"title":210,"path":205,"stem":211,"icon":180},"Database Replication strategy in large systems","posts\u002Fdatabase\u002Freplication-strategy",false,{"title":214,"icon":215,"redirect":216,"path":217,"stem":218,"children":219,"page":212},"Docker","vscode-icons:file-type-docker2","\u002Fposts\u002Fdocker\u002Fdocker-commands","\u002Fposts\u002Fdocker","posts\u002Fdocker",[220,223,227],{"title":221,"path":216,"stem":222,"icon":180},"Docker commands essentials","posts\u002Fdocker\u002Fdocker-commands",{"title":224,"path":225,"stem":226,"icon":180},"Some useful Dockerfile templates","\u002Fposts\u002Fdocker\u002Fdockerfile-templates","posts\u002Fdocker\u002Fdockerfile-templates",{"title":228,"path":229,"stem":230,"icon":180},"Setup Docker environment on Windows","\u002Fposts\u002Fdocker\u002Fsetup-docker-on-window","posts\u002Fdocker\u002Fsetup-docker-on-window",{"title":232,"icon":233,"redirect":234,"path":235,"stem":236,"children":237,"page":212},"Git & GitHub","material-icon-theme:git","\u002Fposts\u002Fgit\u002Fbrightly-decorate-graph","\u002Fposts\u002Fgit","posts\u002Fgit",[238,241,242,246,250],{"title":239,"path":234,"stem":240,"icon":180},"Brightly decorate your GitHub Graph","posts\u002Fgit\u002Fbrightly-decorate-graph",{"title":5,"path":186,"stem":190,"icon":180},{"title":243,"path":244,"stem":245,"icon":180},"Syncing Git Tags across to other repositories","\u002Fposts\u002Fgit\u002Fsyncing-tags-across-repositories","posts\u002Fgit\u002Fsyncing-tags-across-repositories",{"title":247,"path":248,"stem":249,"icon":180},"Unlocking GitHub Achievement badges","\u002Fposts\u002Fgit\u002Funlocking-achievement-badges","posts\u002Fgit\u002Funlocking-achievement-badges",{"title":251,"path":252,"stem":253,"icon":180},"Essential Git commands every developer should master","\u002Fposts\u002Fgit\u002Fuseful-commands-like-pro","posts\u002Fgit\u002Fuseful-commands-like-pro",{"title":255,"icon":256,"redirect":257,"path":258,"stem":259,"children":260,"page":212},"Golang","material-icon-theme:go","\u002Fposts\u002Fgolang\u002Foptimizing-performance-with-pgo","\u002Fposts\u002Fgolang","posts\u002Fgolang",[261],{"title":262,"path":257,"stem":263,"icon":180},"Optimizing Performance in Go Applications with PGO","posts\u002Fgolang\u002Foptimizing-performance-with-pgo",{"title":265,"icon":266,"redirect":267,"path":268,"stem":269,"children":270,"page":212},"JavaScript","vscode-icons:file-type-js","\u002Fposts\u002Fjavascript\u002F9-lines-of-tips","\u002Fposts\u002Fjavascript","posts\u002Fjavascript",[271,274],{"title":272,"path":267,"stem":273,"icon":180},"9 lines of JavaScript replace 50 lines of code","posts\u002Fjavascript\u002F9-lines-of-tips",{"title":275,"path":276,"stem":277,"icon":180},"Javascript Promises - Specific functions and use cases","\u002Fposts\u002Fjavascript\u002Fpromises-cheatsheet","posts\u002Fjavascript\u002Fpromises-cheatsheet",{"title":279,"icon":280,"redirect":281,"path":282,"stem":283,"children":284,"page":212},"Node","material-icon-theme:nodejs-alt","\u002Fposts\u002Fnodejs\u002Fevent-loop","\u002Fposts\u002Fnodejs","posts\u002Fnodejs",[285],{"title":286,"path":281,"stem":287,"icon":180},"Secret about Event Loop flow in Nodejs","posts\u002Fnodejs\u002Fevent-loop",{"title":289,"icon":290,"redirect":291,"path":292,"stem":293,"children":294,"page":212},"Nuxt","vscode-icons:file-type-nuxt","\u002Fposts\u002Fnuxt\u002Fenable-pwa-in-nuxt","\u002Fposts\u002Fnuxt","posts\u002Fnuxt",[295],{"title":296,"path":291,"stem":297,"icon":180},"Enable PWA and Service Worker in Nuxt","posts\u002Fnuxt\u002Fenable-pwa-in-nuxt",{"title":299,"icon":300,"redirect":301,"path":302,"stem":303,"children":304,"page":212},"Performance","emojione:rocket","\u002Fposts\u002Fperformance\u002Fbackground-image-injection-problem","\u002Fposts\u002Fperformance","posts\u002Fperformance",[305],{"title":306,"path":301,"stem":307,"icon":180},"Background-Image injection problem in UX","posts\u002Fperformance\u002Fbackground-image-injection-problem",{"title":309,"icon":310,"redirect":311,"path":312,"stem":313,"children":314,"page":212},"Tutorial","fluent-color:book-open-lightbulb-24","\u002Fposts\u002Ftutorial\u002Fclassification-and-functionality-of-the-servers","\u002Fposts\u002Ftutorial","posts\u002Ftutorial",[315,318,322,326,330],{"title":316,"path":311,"stem":317,"icon":180},"Classification and functionality of the servers","posts\u002Ftutorial\u002Fclassification-and-functionality-of-the-servers",{"title":319,"path":320,"stem":321,"icon":180},"What is the difference between localhost and 127.0.0.1?","\u002Fposts\u002Ftutorial\u002Fdifferent-between-localhost-and-127-0-0-1","posts\u002Ftutorial\u002Fdifferent-between-localhost-and-127-0-0-1",{"title":323,"path":324,"stem":325,"icon":180},"8 essential network protocols every programmer should know","\u002Fposts\u002Ftutorial\u002Fessential-network-protocols","posts\u002Ftutorial\u002Fessential-network-protocols",{"title":327,"path":328,"stem":329,"icon":180},"Pre rels in header link tag - SEO technique enhancement","\u002Fposts\u002Ftutorial\u002Fpre-rels-in-header-link-tag","posts\u002Ftutorial\u002Fpre-rels-in-header-link-tag",{"title":331,"path":332,"stem":333,"icon":180},"Better code with SOLID principles","\u002Fposts\u002Ftutorial\u002Fwhat-is-solid","posts\u002Ftutorial\u002Fwhat-is-solid",{"title":335,"icon":336,"redirect":337,"path":338,"stem":339,"children":340,"page":212},"UI\u002FUX","devicon:figma","\u002Fposts\u002Fuiux\u002Fcommon-button-mistake","\u002Fposts\u002Fuiux","posts\u002Fuiux",[341],{"title":342,"path":337,"stem":343,"icon":180},"Common Button Mistake in UI\u002FUX","posts\u002Fuiux\u002Fcommon-button-mistake",{"title":345,"icon":346,"path":347,"stem":348,"children":349,"page":212},"Cheatsheets","fluent-color:paw-16","\u002Fcheatsheets","cheatsheets",[350,355,360,363,368,371,376,380,385,390,395,400,405,410,414,418,423,428,432,437,442,447],{"title":351,"path":352,"stem":353,"icon":354},"Bash","\u002Fcheatsheets\u002Fbash","cheatsheets\u002Fbash","material-icon-theme:powershell",{"title":356,"path":357,"stem":358,"icon":359},"CSS","\u002Fcheatsheets\u002Fcss","cheatsheets\u002Fcss","vscode-icons:file-type-css2",{"title":214,"path":361,"stem":362,"icon":215},"\u002Fcheatsheets\u002Fdocker","cheatsheets\u002Fdocker",{"title":364,"path":365,"stem":366,"icon":367},"Git","\u002Fcheatsheets\u002Fgit","cheatsheets\u002Fgit","devicon:git",{"title":255,"path":369,"stem":370,"icon":256},"\u002Fcheatsheets\u002Fgo","cheatsheets\u002Fgo",{"title":372,"path":373,"stem":374,"icon":375},"HTML","\u002Fcheatsheets\u002Fhtml","cheatsheets\u002Fhtml","material-icon-theme:html",{"title":265,"path":377,"stem":378,"icon":379},"\u002Fcheatsheets\u002Fjavascript","cheatsheets\u002Fjavascript","material-icon-theme:javascript",{"title":381,"path":382,"stem":383,"icon":384},"Latex","\u002Fcheatsheets\u002Flatex","cheatsheets\u002Flatex","material-icon-theme:latexmk",{"title":386,"path":387,"stem":388,"icon":389},"Linux","\u002Fcheatsheets\u002Flinux","cheatsheets\u002Flinux","devicon:linux",{"title":391,"path":392,"stem":393,"icon":394},"Markdown","\u002Fcheatsheets\u002Fmarkdown","cheatsheets\u002Fmarkdown","material-icon-theme:markdown",{"title":396,"path":397,"stem":398,"icon":399},"Mongo","\u002Fcheatsheets\u002Fmongo","cheatsheets\u002Fmongo","devicon:mongodb",{"title":401,"path":402,"stem":403,"icon":404},"Nest","\u002Fcheatsheets\u002Fnest","cheatsheets\u002Fnest","material-icon-theme:nest",{"title":406,"path":407,"stem":408,"icon":409},"Next","\u002Fcheatsheets\u002Fnext","cheatsheets\u002Fnext","logos:nextjs-icon",{"title":279,"path":411,"stem":412,"icon":413},"\u002Fcheatsheets\u002Fnode","cheatsheets\u002Fnode","material-icon-theme:nodejs",{"title":289,"path":415,"stem":416,"icon":417},"\u002Fcheatsheets\u002Fnuxt","cheatsheets\u002Fnuxt","material-icon-theme:nuxt",{"title":419,"path":420,"stem":421,"icon":422},"React","\u002Fcheatsheets\u002Freact","cheatsheets\u002Freact","material-icon-theme:react",{"title":424,"path":425,"stem":426,"icon":427},"Redis","\u002Fcheatsheets\u002Fredis","cheatsheets\u002Fredis","vscode-icons:folder-type-redis-opened",{"title":429,"path":430,"stem":431,"icon":204},"SQL","\u002Fcheatsheets\u002Fsql","cheatsheets\u002Fsql",{"title":433,"path":434,"stem":435,"icon":436},"Typescript","\u002Fcheatsheets\u002Ftypescript","cheatsheets\u002Ftypescript","material-icon-theme:typescript",{"title":438,"path":439,"stem":440,"icon":441},"Vercel","\u002Fcheatsheets\u002Fvercel","cheatsheets\u002Fvercel","vscode-icons:file-type-light-vercel",{"title":443,"path":444,"stem":445,"icon":446},"Vue","\u002Fcheatsheets\u002Fvue","cheatsheets\u002Fvue","material-icon-theme:vue",{"title":448,"path":449,"stem":450,"icon":451},"Windows","\u002Fcheatsheets\u002Fwindow","cheatsheets\u002Fwindow","material-icon-theme:folder-windows",{"title":453,"icon":454,"path":455,"stem":456,"children":457,"page":212},"Prompts","fluent-color:bot-sparkle-24","\u002Fprompts","prompts",[458],{"title":459,"path":460,"stem":461,"children":462,"page":212},"Image Generation","\u002Fprompts\u002Fimage-generation","prompts\u002Fimage-generation",[463],{"title":464,"path":465,"stem":466,"icon":454},"Futuristic Cloud Workspace","\u002Fprompts\u002Fimage-generation\u002Ffuturistic-cloud-workspace","prompts\u002Fimage-generation\u002Ffuturistic-cloud-workspace",{"title":468,"icon":469,"path":470,"stem":471,"children":472,"page":212},"Interviews","lucide:messages-square","\u002Finterviews","interviews",[473,477,482,485,489,494,499,504,509,514,519],{"title":474,"path":475,"stem":476,"icon":469},"Behavioral Engineering","\u002Finterviews\u002Fbehavioral-engineering","interviews\u002Fbehavioral-engineering",{"title":478,"path":479,"stem":480,"icon":481},"DevOps and Cloud","\u002Finterviews\u002Fdevops-cloud","interviews\u002Fdevops-cloud","logos:docker-icon",{"title":372,"path":483,"stem":484,"icon":375},"\u002Finterviews\u002Fhtml","interviews\u002Fhtml",{"title":265,"path":486,"stem":487,"icon":488},"\u002Finterviews\u002Fjavascript","interviews\u002Fjavascript","logos:javascript",{"title":490,"path":491,"stem":492,"icon":493},"Node.js and API Design","\u002Finterviews\u002Fnodejs-api","interviews\u002Fnodejs-api","logos:nodejs-icon",{"title":495,"path":496,"stem":497,"icon":498},"Software Testing","\u002Finterviews\u002Fsoftware-testing","interviews\u002Fsoftware-testing","lucide:flask-conical",{"title":500,"path":501,"stem":502,"icon":503},"SQL and Databases","\u002Finterviews\u002Fsql-databases","interviews\u002Fsql-databases","lucide:database",{"title":505,"path":506,"stem":507,"icon":508},"System Design","\u002Finterviews\u002Fsystem-design","interviews\u002Fsystem-design","lucide:network",{"title":510,"path":511,"stem":512,"icon":513},"TypeScript","\u002Finterviews\u002Ftypescript","interviews\u002Ftypescript","logos:typescript-icon",{"title":515,"path":516,"stem":517,"icon":518},"Vue and Nuxt","\u002Finterviews\u002Fvue-nuxt","interviews\u002Fvue-nuxt","logos:nuxt-icon",{"title":520,"path":521,"stem":522,"icon":523},"Web Security","\u002Finterviews\u002Fweb-security","interviews\u002Fweb-security","lucide:shield-check",[525,526],{"title":239,"path":234,"stem":240,"children":-1},{"title":243,"path":244,"stem":245,"children":-1},[528,536,544],{"path":252,"title":251,"description":529,"image":530,"category":176,"tags":533,"duration":534,"publishedAt":535,"_path":252},"Master Git like a pro with these powerful commands for commit management, branch operations, and workflow optimization",{"src":531,"alt":532},"https:\u002F\u002Fwww.matillion.com\u002Fuploads\u002Fcards\u002F_1200x630_crop_center-center_82_none\u002FBlog-GIT-Part3.png","Essential_Git_commands_image",[176,192],"5","2025-08-05",{"path":244,"title":243,"description":537,"image":538,"category":176,"tags":541,"duration":542,"publishedAt":543,"_path":244},"Learn how to synchronize Git tags between multiple repositories effortlessly.",{"src":539,"alt":540},"https:\u002F\u002Fmedia.licdn.com\u002Fdms\u002Fimage\u002Fv2\u002FD4E12AQGPhWyP7Rc1sw\u002Farticle-cover_image-shrink_720_1280\u002Farticle-cover_image-shrink_720_1280\u002F0\u002F1729234511193?e=2147483647&v=beta&t=nRMwzDEvPjm0UJ_TW9cP9gQF4_kfB0HbJh3a5lrVA3M","Syncing_Git_Tags_image",[176,192],"1","2025-07-11",{"path":248,"title":247,"description":545,"image":546,"category":176,"tags":549,"duration":550,"publishedAt":551,"_path":248},"A comprehensive guide to get achievement badges on your GitHub profile!",{"src":547,"alt":548},"https:\u002F\u002Frepository-images.githubusercontent.com\u002F634841108\u002F401fc2d0-ee6e-4a75-aabf-e63330221642","GitHub_Achievements_image",[176,192],"6","2025-07-07"]