Ну, во первых держать всё надо у себя это первое, но на всякий ещё хостить, в идеале на нескольких точках ибо, ибо.
В любом случае всегда есть некая одна внешняя репа которая типа основная, на неё и README опирается и всякое такое прочее. Самый простой вариант, на дополнительной репе создать пустой репозиторий, в текущих проектах прописать например
[remote "all"]
url = git@gitflic.ru:blogdron/someproject.git
url = git@github.com:blogdron/someproject.git
сделать
git push -u all master
И всё, теперь каждый git push
будет отправлять изменения в два (и более) репозитория. Но, ради эксперимента я взял и удалил первый репозиторий на стороне хостинга, имитируя например его недоступность, вношу изменения и делаю git push
dron@gnu:~/Рабочий-стол/lalala$ git push
fatal: Не удалось прочитать из внешнего репозитория.
Удостоверьтесь, что у вас есть необходимые права доступа
и репозиторий существует.
Ни туда, ни сюда. :( И теперь надо специально отправлять в рабочую репу и/или изменять конфигурацию. Херня какая-то. Как можно игнорировать недоступность репы?
Ещё думалось, зеркалить. Ну, одни дают это делать, другие не дают, херня костыльная короче. Но у всех есть токен API через который можно делать изменения с репозиториями и как вариант написать скрипт, который будет раз в N времени по желанию левой пятки синхронизировать локальные репозитории/включая их создание если их на той стороне нет, с удалёнными отправляя в них изменения. Так каталоги проектов будут чистые и без всякого мусора от разных репозиториев хранения кода, за исключением одного типа основного.
А вы как делаете? Если делаете вообще. У меня сильной надобности нет, скорее спортивный интерес.