git pull --depth works on an existing repo to set the depth of references retrieved. To quote the
Limit fetching to the specified number of commits from the tip of each remote branch history.
So, what happens when you run this? Here’s me experimenting with the Elixir repo:
$ git clone https://github.com/elixir-lang/elixir.git $ cd elixir $ git log --oneline | wc -l 15670 # 15670 entries! $ git pull --depth=1 # ...pulling the shallow repo $ git log --oneline | wc -l 1 # 15670 to 1... woah! $ git log # ...output from just one commit
.git/ a lot smaller now? Not yet, because there are many dangling references. This Stack Overflow answer shows you how to cleanup that directory. After setting a depth of one and following its instructions, I reduced the Elixir repo’s
.git/ size by 90%.
man git-pull for more information.