Using Git Sparse Checkout

June 5, 2013

There are times when all I want or need from a Git repo are a handful files. For example, I use the awesome git-completion and git-prompt scripts included in the Git project. Thus, I don't need the entire Git repo taking up space.

This is exactly what sparse checkouts enable.

Here are the steps to create a "sparse" Git local repository that only includes the "Completion" scripts.

Step 1: Create a directory.

I named mine git-completion. You can name the directory whatever you want.

mkdir git-completion cd git-completion 

Step 2: Initialize a Git repository

git init 

Step 3: Enable Sparse Checkouts

git config core.sparsecheckout true 

Step 4: Tell Git which directories you want

echo contrib/completion/ >> .git/info/sparse-checkout 

Or you can modify the .git/info/sparse-checkout file directly. Either way is fine.

Step 5: Add the remote

git remote add -f origin https://github.com/git/git.git 

Final Step: Fetch the files

git pull origin master 

You should now have the contrib/completion directory. No other Git source files exist in your local copy.

Sourcing the files

Update your .bashrc file.

source ~/Development/git-completion/contrib/completion/git-completion.bash source ~/Development/git-completion/contrib/completion/git-prompt.sh