Расширяя некоторые другие ответы, вот что я делаю:
Настройка репозитория: git clone --mirror user@server:/url-to-repo.git
Затем, когда вы хотите обновить резервную копию: git remote update
из расположения клона.
Это резервное копирование всех веток и тегов, включая новые, которые будут добавлены позже, хотя стоит отметить, что удаляемые ветви не удаляются из клона (что для резервной копии может быть хорошей вещью).
Это атомарное, поэтому нет проблем, которые могут возникнуть у простой копии.
См. http://www.garron.me/en/bits/backup-git-bare-repo.html