
В условиях турбулентной работы облачных сервисов (снова так скажем) вопрос избыточности хранения кода становится актуальным. Держать проект только на GitHub — это риск. Решением может стать зеркалирование кода в другой сервис, например, на GitVerse.
Обычно мы привыкли, что один remote (например, origin) привязан к одному URL. Но Git позволяет добавить несколько URL для push-операций в один remote.
Как это настроить Link to heading
Если у вас уже есть основной репозиторий на GitHub, достаточно добавить второй URL для отправки данных:
git remote set-url --add --push origin git@gitverse.ru:tatarinovms/ShadowRocketSimpleConfig.git
Теперь при выполнении команды git push origin ваши изменения полетят сразу в оба репозитория.
Нюансы с конфликтами Link to heading
Главная проблема возникает, когда в одном из зеркал есть изменения, которых нет в другом (например, вы отредактировали README прямо в веб-интерфейсе GitVerse). В этом случае обычный push будет отклонен.
Решить это можно через создание временного remote для «проблемного» зеркала и слияние веток:
- Добавляем зеркало как отдельный remote:
git remote add gitverse git@gitverse.ru:tatarinovms/ShadowRocketSimpleConfig.git - Подтягиваем изменения, разрешая несвязанные истории:
git pull gitverse main --no-rebase --allow-unrelated-histories - После разрешения конфликтов снова пушим всё в
origin.
Теперь код синхронизирован, а вы спите спокойно, зная, что копия вашего проекта лежит на разных площадках.