Shallow clone
Clone a repository keeping only the latest n commits of history. You can properly pull and push to repositories even from a shallow clone.git clone --depth 1 remote-url
Clone only one branch
You can also limit the amount of history you clone by cloning a single branchgit clone URL --branch branch_name --single-branch [folder]
Sparse checkout
Original StackOverflow answermkdir <repo>
cd <repo>
git init
git remote add -f origin <url>
git config core.sparsecheckout true
echo "some/dir/" >> .git/info/sparse-checkout
echo "another/sub/tree" >> .git/info/sparse-checkout
git pull origin master
Another way:
git clone
git config core.sparsecheckout true
echo src/ > .git/info/sparse-checkout
git read-tree -m -u HEAD
Sparse checkout + shallow clone
Original StackOverflow answergit init <repo>
cd <repo>
git remote add origin <url>
git config core.sparsecheckout true
echo "src/*" >> .git/info/sparse-checkout
git pull --depth=1 origin master
Disable delta compression for binary files
Original discussionConfigure a .gitattributes file as such:
*.jpg binary -delta *.png binary -delta *.psd binary -delta... and so on