Использование одного клона может быть достаточно в качестве резервной копии. Но если у вас есть только один пульт, использующий аргумент --all
команды git fetch
, ничего не получится, так как это просто говорит git выбирать все сконфигурированные пульты.
Если вы хотите убедиться, что вы получаете все ссылки (включая ветки), вы можете запустить
git config --add remote.origin.fetch '+refs/*:refs/backup/*'
Это приведет к тому, что все ссылки с удаленного узла будут выбраны в отдельное backup
пространство имен вашей иерархии ссылок. Эти ссылки не будут отображаться в выходных данных git branch
даже с опцией -a
.
Другой вариант - сначала клонировать из существующего локального репозитория, чтобы получить все крупные объекты в резервном клоне без использования сети (если ваша файловая система поддерживает жесткие ссылки, даже дисковое пространство будет разделено), а затем переключиться на выборку обновлений из хранилище, которое вы хотите сделать резервную копию.