Хотя это не является частным (любой в вашей компании может получить к ним доступ, но не по умолчанию, так что это не раздражает), вот что я делаю:
In ~ / .gitconfig
[alias]
backup = !git push -v origin +refs/heads/*:refs/wip/`git config --get user.email`/*
Таким образом, вы можете в любое время запустить локальное репо:
git backup
Все ваши локальные ветки (в любом случае под refs /heads) будут помещены в репо "origin" в пространстве имен refs / wip / your_email /, безусловно (так же, как push -f).
Как только вы будете готовы перейти к исходному / главному устройству, если вы использовали это для резервного копирования текущей работы, push будет действительно быстрым, поскольку большинство (все) объектов SHA1 уже находятся на исходный сервер.
Обратите внимание, что время от времени вы захотите очистить резервные копии, чтобы исходное хранилище могло собирать мусор. См:
git ls-remote origin refs/wip/`git config --get user.email`/*
Это даст вам список веток, которые вы выдвинули в резервные копии, чтобы вы могли знать / автоматизировать, что нужно чистить.