Say you have a large git repository say 1 GB or even bigger. It may have a lot of branches and a long history. You now want to clone it to make some changes and create a pull request. Cloning it in its entirety with git clone
would be a bad idea. Instead, do this:
git clone -b <branch> <url> --depth=1
A practical example would be:
git clone -b master https://github.com/gatsbyjs/gatsby --depth=1
The giant 735.03 MB Gatsby repository, cloned this way is about 680 MB in size. I read that Jira is 677MB, with the working directory being another 320MB, when you clone this way.
Explanation:#
-b <branch>
to define the exact branch you want to clone
--depth=n
to pull down only the latest n
commits
You can work this magic when pulling down the code as well:
git pull --rebase origin <branch> --depth=1
A practical example would be:
git pull --rebase origin master --depth=1
That’s about it. You are now shallow cloning and pulling your git repo. It doesn’t make that huge of an impact but I like to stay minimal as far as I can.
Use your code for good.