Motivo de los errores de bloqueo de git

Estoy trabajando en un gran repositorio de git con cientos de sucursales. Estoy en Windows Típicamente cuando yogit pull, me da múltiples errores de bloqueo, por ejemplo:

error: cannot lock ref 'refs/remotes/origin/branchname': is at eed24d0d63 but expected e205e065f3

Puedo arreglar esto ejecutandogit gc --prune=now y tirando de nuevo. Al mirar todas las ramas del repositorio remoto, no veo ramas duplicadas (con diferentes nombres en mayúsculas / minúsculas).

¿Por qué pasó esto? ¿Por qué ese comando lo arregla? ¿Puedo prevenirlo?