shou2017.com
JP

How to git clone only a specific directory

Sat Mar 21, 2020
Sat Aug 10, 2024
Git

When studying programming using reference books, it’s convenient to git clone only a specific directory and proceed with your learning!

This time, I’ll make a note of this method.

Create an empty directory

$ mkdir confetti_cuisine
$ cd confetti_cuisine

Create and initialize an empty repository

confetti_cuisine $ git init

Set up sparse checkout

confetti_cuisine $ git config core.sparseCheckout true
confetti_cuisine $ cat .git/config
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
	ignorecase = true
	precomposeunicode = true
	sparsecheckout = true

Set the source repository

confetti_cuisine $ git remote add origin https://github.com/JonathanWexler/get-programming-with-nodejs.git
confetti_cuisine $ cat .git/config
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
	ignorecase = true
	precomposeunicode = true
	sparsecheckout = true
[remote "origin"]
	url = https://github.com/JonathanWexler/get-programming-with-nodejs.git
	fetch = +refs/heads/*:refs/remotes/origin/*

Specify the directory you want to sparse-checkout

confetti_cuisine $ echo /unit_1/lesson_7_capstone/start/confetti_cuisine/ > .git/info/sparse-checkout

Pull the changes

confetti_cuisine $ git pull origin master
See Also