Reduce Depth of an Existing Git Repo ⚓️
git pull --depth
works on an existing repo to set the depth of references retrieved. To quote the --depth
docs:
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
Is .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%.
Check out man git-pull
for more information.