Я думаю о запуске небольшого проекта и хочу создать его версию с помощью git.
Bitbucket кажется хорошим вариантом для меня с их бесплатным планом. Я хочу использовать его в качестве основного инструмента для работы с git, поскольку у них есть хорошие инструменты, такие как веб-интерфейс, клиент Mac OS и так далее. Но чтобы иметь более высокую защиту от случайных повреждений, которые могут быть вызваны использованием сторонних сервисов, я также хочу установить git на свой NAS в качестве второй резервной копии хранилища.
Теперь мой вопрос: возможно ли создать репозиторий на двух разных хостах и затем синхронизировать их? Например, предположим, что раз в неделю я обновляю репозиторий на своем NAS, чтобы он соответствовал репозиторию на Bitbucket. Затем, в случае, если что-то случится с Bitbucket, у меня все еще будет полный репозиторий с полной историей разработки на моем локальном хранилище NAS.
И есть ли способ импортировать существующее хранилище с полной историей в другой git-сервис?
Я думаю, что зеркалирование - это то, что мне нужно. Эта статья, кажется, описывает именно то, что мне нужно. И это один , а также.
Я считаю, что он будет делать полную копию с полной историей и даже автоматически фиксировать новые версии в репозитории на обоих хостах автоматически.
Я прав?
Ответы:
Да, в этом и заключается прелесть DVCS, например, git. Вы можете использовать любое количество разных репозиториев с тем же состоянием, что и на bitbucket или github.
Даже ваша локальная копия (хранилище на вашем компьютере) обычно является полным клоном удаленного хранилища.
Единственное, что вам нужно сделать, чтобы синхронизировать несколько репозиториев, - это потянуть за одно (обычно называемое origin или upstream) и отправить в резервные копии.
источник
Вот проверенное решение проблемы: Автоматические Sync 2 Remote Git Repositories
Простой скрипт для синхронизации 2-х удаленных репозиториев Git
Я искал в Интернете простой скрипт, который будет синхронизироваться. 2 удаленных репозитория, но я не смог найти такой скрипт, хотя многие, кажется, ищут его! Итак, я создал 2 простых тестовых репозитория и начал тестировать и создавать такой скрипт.
Что должен делать такой скрипт?
Ну, в общем, шаги для этого просты: 1. Клонировать первый репозиторий 1. Добавить второй в качестве дополнительного удаленного репозитория 1. Извлечь все, что есть во втором репозитории 1. Вставить обновленный локальный репозиторий в 2 удаленные репозитории.
Остается вопрос - каковы правильные ключи для всех вышеперечисленных команд git?
Так что вот оно ...
2repos-sync.sh GISP скрипт
ВНИМАНИЕ - этот скрипт не разрешает случаи конфликтов между содержимым репозитория!
источник
Я использую частный GitLab для хранения всех своих репозиториев, поэтому у меня есть только один источник, который я использую в процессе повседневной разработки.
Но для проектов с открытым исходным кодом GitHub является гораздо более динамичным сообществом, поэтому, если я хочу принять участие сообщества в своих проектах, я использую систему веб-перехвата GitLab, чтобы пропинговать запущенный мной сервер, который затем обновляет мои публичные репозитории на GitHub.
Это позволяет мне рассматривать GitHub как еще один удаленный модуль, с которого я могу извлекать информацию, когда кто-то вносит свой вклад, а затем я объединяю --no-ff локально, и возникает поток, с помощью которого все мои основные и публичные репозитории распределяют изменения.
источник