How to convert a Git shallow clone to a full clone?

Solution 1:

The below command (git version 1.8.3) will convert the shallow clone to regular one

git fetch --unshallow

Then, to get access to all the branches on origin (thanks @Peter in the comments)

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin

Solution 2:

EDIT: git fetch --unshallow now is an option (thanks Jack O'Connor).

You can run git fetch --depth=1000000 (assuming the repository has less than one million commits).