Como comentario aparte, aparte de la respuesta de mipadi (que debería funcionar por cierto), debes saber que al hacer:
git branch -D master
git checkout master
también hace exactamente lo que quieres sin having to redownload everything
(tu cita parafraseada). Esto se debe a que su repositorio local contiene una copia del repositorio remoto (y esa copia no es lo mismo que su directorio local, ni siquiera es lo mismo que su rama desprotegida).
Eliminar una sucursal es perfectamente seguro y reconstruir esa sucursal es muy rápido y no implica tráfico de red. Recuerde, git es principalmente un repositorio local por diseño. Incluso las sucursales remotas tienen una copia en el local. Solo hay un poco de metadatos que le dicen a git que una copia local específica es en realidad una rama remota. En git, todos los archivos están en su disco duro todo el tiempo.
Si no tiene ninguna otra rama que no sea master, debe:
git checkout -b 'temp'
git branch -D master
git checkout master
git branch -D temp
git fetch
ygit pull
- pull es una combinación de buscar y fusionar.