Кроме того, помимо ответа от mipadi (который, кстати, должен работать), вы должны знать, что делаете:
git branch -D master
git checkout master
также делает именно то, что вы хотите без having to redownload everything
(ваша цитата перефразирована). Это потому, что ваше локальное хранилище содержит копию удаленного хранилища (и эта копия не совпадает с вашей локальной папкой, она даже не совпадает с вашей извлеченной веткой).
Удаление ветки совершенно безопасно, а восстановление этой ветки происходит очень быстро и не требует сетевого трафика. Помните, что git - это, прежде всего, локальный репозиторий. Даже удаленные филиалы имеют копии на локальных. Есть только немного метаданных, которые сообщают git, что конкретная локальная копия на самом деле является удаленной ветвью. В git все файлы постоянно находятся на вашем жестком диске.
Если у вас нет других веток, кроме master, вам следует:
git checkout -b 'temp'
git branch -D master
git checkout master
git branch -D temp
git fetch
иgit pull
- pull - это комбинация выборки и слияния.