Вы можете сказать Git, чтобы он вытащил все ветки следующим образом:
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
Если заглянуть внутрь .git/config, это будет выглядеть примерно так:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = https://github.com/owner/repo.git
fetch = +refs/heads/master:refs/remotes/origin/master
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
Я сравнил это с полным клоном и увидел, что единственной разницей была "выборка" ниже [remote "origin"].
Примечание. Я использую Git версии 1.8.2. Параметры конфигурации могли измениться, если вы используете старую версию Git. Если мои команды не работают, я бы порекомендовал просмотреть, .git/configчтобы увидеть что-то подобное.