Как синхронизировать два репозитория git? - PullRequest
9 голосов
/ 05 октября 2011

Я использую свой личный репозиторий git на частном сервере в средстве colo. Я использую его для любых частных проектов, которые я не могу открыть с открытым исходным кодом. Я использую github для всей моей работы с открытым исходным кодом.

Я занимаюсь разработкой на настольном компьютере с Ubuntu и на моем MacBookPro. Внося изменения в свои системы разработки, я отправляю изменения в начало координат в colo и перетаскиваю в другую систему. Я очень хорошо поддерживаю актуальность всех трех систем, в основном для целей резервного копирования и аварийного восстановления.

Теперь, когда BitBucket предлагает бесплатный частный хостинг Git, я подумываю добавить клон своих проектов. Кроме того, тогда я мог бы использовать дополнительные функции, предоставляемые BitBucket, которые не предоставляет мой barebone-сервер Git. Тем не менее, я хотел бы продолжать хранить копии частных репозиториев на моем сервере colo, а также для резервного копирования.

Итак, у меня есть несколько вопросов:

  1. Без изменения моего стандартного процесса разработки (редактирование, добавление, принятие, отправка), как я могу автоматически синхронизировать фиксации, отправленные на мой сервер, в проект bitbucket? Каждый раз, когда я отправляю на свой git-сервер, я хочу, чтобы эти коммиты автоматически передавались в мой проект bitbucket. Я не хочу менять свой рабочий процесс и хотел бы, чтобы мои клиенты по разработке потребовали как можно меньше изменений.

  2. Если я хочу использовать bitbucket в качестве основного git-репо, как мне перенести мои проекты с моего частного git-сервера на bitbucket?

  3. Как только я перейду на bitbucket, мне все равно понадобится еще одна резервная копия на моем сервере. Как я могу автоматически отправлять коммиты на bitbucket на мой git-сервер? Это в основном противоположность вопроса 1.

Ответы [ 2 ]

7 голосов
/ 05 октября 2011

Для # 1 самое простое решение - использовать ловушку на вашем удаленном репо, которая автоматически выдвигается в BitBucket.

Для # 2: вы просто добавляете bitbucket в качестве удаленного и добавляете его вместо источника.Если у вас есть какие-либо ветви отслеживания (отметьте .git/config), измените remote = origin на любое имя, которое вы использовали для bitbucket.Другим решением было бы удалить / переименовать существующий origin пульт и добавить битбакет в качестве источника.

Для # 3: cronjob, выполняющий git fetch, вероятно, самый простой способ сделать это.

4 голосов
/ 05 октября 2011

Возможно, вы могли бы добавить GIT-хук на свой частный сервер для автоматического добавления в Bitbucket.

В книге Pro Git есть глава о GIT-хуках: https://git -scm.com/ книга / а / v2 / Customizing-Гит-Гит-Крючки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...