Há .git/objects , que contém blobs, árvores, confirmações e tags. Fazer qualquer tipo de git push envolve basicamente três etapas:
- Descobrir quais objetos o controle remoto precisa, mas ainda não possui;
- Empacotando (desduplicando) esses objetos para economizar espaço; e
- Transferindo os objetos.
git rev-parse --verify HEAD e git bundle podem ajudar você nas etapas 1 e 2.
Leia mais: Git Internals - Objetos Git · Pequeno pacote de alegria de Git