Зеркалирование репозиториев git. Linux статьи
Написать статью
Войдите, чтобы писать статьи

Зеркалирование репозиториев git

27
Материал написан пользователем сайта.

В поисках лучшего сервиса управления своими проектами обычно рассматриваются такие платформы как: GitHub и GitLab. Иногда пользователи используют оба сервиса одновременно, и тут встает вопрос/задача: каким образом организовать автоматическое сохранение изменений своих проектов сразу на обоих веб-репозиториях git. GitLab бесплатно предлагает только отправку «зеркала» на сторонний сервис, обратная функция у них — платная.

Gitlab repository mirroring

На GitHub же этот функционал может быть получен бесплатно через систему персональных электронных ключей (токенов), которые уже несколько лет используются на платформе взамен авторизации по имени и паролю. Для этого нужно всего лишь сгенерировать персональный токен, настроить срок действия и области распространения и в последствии использовать его для доступа к репозиторию.

Сделать это можно зайдя в настройки профиля «Settings» → «Developer settings» → «Personal access tokens» → «Tokens (classic) → «Generate new token (classic)» со страницы github или перейдя по адресу: https://github.com/settings/tokens/new

Github token setup

После того, как электронный ключ будет создан, нужно его скопировать или сохранить для будущего использования; повторно увидеть его не получится, придется генерировать новый. Этот ключ мы будем использовать для создания правила автоматической синхронизации репозитория GitHub, как зеркала основного репозитория GitLab при любом изменении последнего. Далее рассмотрим 2 варианта реализации решения поставленной задачи.

В первом случае, воспользуемся веб-версией сервиса GitLab

Для этого в настройках нашего репозитория, который будет использован в качестве «зеркала»для GitHub, нужно применить правило.

Add mirror repository to Gitlab repository

В поле адреса нужно вписать следующее:

https://<ваш_токен_github>@github.com/<ваш_логин_github>/<ваш_репозиторий_github>.git

В поле «Username» —ваш пользователь github

В поле «Password» —ваш токен github (повторно скопировать, как в поле адреса)

Нажать на кнопку«Зеркалировать репозиторий» (Mirror repository).

После этого появится строчка в таблице«Отзеркаленные репозитории»; проверить,что все работает, можно нажав на кнопку принудительной синхронизации — если ошибок при этом не будет, значит настроили все правильно.

Во втором случае, настроим автоматическое обновление «зеркала» с помощью командной строки

Это удобно, когда проект полностью ведется в локальном репозитории, а на внешний лишь отправляются изменения в нем.

Перейдем в папку проекта:

# cd <путь к локальному git-репозиторию>

В примере предполагается, что ваша локальная ветка main, а удаленная— origin. Добавим адрес «зеркала» в настройки git:

# git remote set-url --add origin https://<ваш_логин_github>:<ваш_токен_github>@github.com/<ваш_логин_github>/<ваш_репозиторий_github>.git

Теперь каждый раз при вызове команды:

# git push -uf origin main

вместе с основным репозиторием проекта на GitLab будет автоматически обновляться и репозиторий «зеркала» на GitHub.

В статье мы рассмотрели способы настройки и управления зеркалами своих проектов, используя самые популярные на сегодня веб-сервисы: GitLab и GitHub.

В дополнение, хотел бы поделиться ссылкой на интерактивный учебник по командам git, который отлично дополнит любые справочники и базы знаний, в том числе и имеющийся у нас на сайте Git в вопросах и ответах:

https://learngitbranching.js.org/?locale=ru_RU

Лайков: +10
войдите, чтобы ставить лайки
27
  • Опубликовано: 05.12.2024
  • scorpii

Комментарии

Mockingbird
Активный пользователь
Активный
05.12.2024
15:32
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+2
войдите, чтобы ставить лайки
Спасибо, позновательно.
Но думаю, тут не хватает зеркал на GitFlic или его аналоги..
https://trends-rbc-ru.turbopages.org/turbo/trends.rbc.ru/s/trends/industry/622b8b4f9a7947053add4807

Причина банальная, санкции...
11 марта 2022 года GitLab заявили о приостановке продаж своих сервисов на территории России и Беларуси. После того как Gitlab ушел из России и Беларуси, у пользователей возникли сложности с регистрацией на сайте gitlab.com
https://reg-ru.turbopages.org/turbo/reg.ru/s/blog/kak-ispolzovat-gitlab-v-usloviyah-sankcij/

Март 2022
Цель GitHub — стать домом для всех разработчиков, независимо от того, где они находятся. Мы серьёзно относимся к своим обязательствам перед государством, в том числе к соблюдению новых строгих правил экспортного контроля, направленных на серьёзное ограничение доступа России к технологиям...
https://github.com/orgs/community/discussions/12042#discussioncomment-2276190
Minor748
Активный пользователь
Активный
05.12.2024
16:07
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
https://codeberg.org/
Вот и у меня так текст слипается после сохранения черновика, приходится в редакторе его править
scorpii
Активный пользователь
Активный
08.12.2024
10:19
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийMinor748Родительский комментарий
0
войдите, чтобы ставить лайки
> https://codeberg.org/

попробуйте материнский вариант:
https://gitea.com/
Minor748
Активный пользователь
Активный
08.12.2024
13:15
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийscorpiiРодительский комментарий
+1
войдите, чтобы ставить лайки
Я не кодер и не айтишник, но по сфере интересов часто с ними пересекаюсь (как сейчас). Про gitea тоже встречал. Сколько добавил ПО в каталог сайта, например, нужно там указывать страницы с исходниками. Поэтому так или иначе на git различные заглядываю.
x230
Активный пользователь
Активный
08.12.2024
18:07
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийMinor748Родительский комментарий
+1
войдите, чтобы ставить лайки
>> Я не кодер и не айтишник

Красаучег!..
Даже не представляешь насколько я "не айтишник"...
Гы-гы...
Кстати поэтому не участвую в обсуждении...

Так интересно наблюдать категоризазацию контингента...
Как статистику это - просто кайфушка!..
+
scorpii
Активный пользователь
Активный
08.12.2024
18:11
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийx230Родительский комментарий
0
войдите, чтобы ставить лайки
> Кстати поэтому не участвую в обсуждении...

А зря... Я ведь тоже "Даже не представляешь насколько я "не айтишник". В самые дебри не лезу, но некоторыми темами интересуюсь. И данная, как раз не совсем про айти))
x230
Активный пользователь
Активный
08.12.2024
19:38
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийscorpiiРодительский комментарий
+1
войдите, чтобы ставить лайки
Серьёзно?
"Зеркалирование репозиториев" - не айти-сфера?
Я точно на той станции сошёл?
scorpii
Активный пользователь
Активный
08.12.2024
19:45
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийx230Родительский комментарий
0
войдите, чтобы ставить лайки
А в чем айти?, позвольте спросить.
Задача была, всего лишь навсего создать автоматизированное решение для резервного хранилища своих конфигов. Поскольку предпочитаю git, то и решения искались вокруг него. Можно конечно и архивы кидать на облачные хранилища, кому как нравится. Но мне с git как-то сподручней и быстрей обращаться. К тому же весьма полезно, что-то новое узнать. Вы же для чего-то копаетесь в конфигах openbox, а могли просто пользоваться популярным ДЕ с его набором, менять обои и штамповать скриншоты.
x230
Активный пользователь
Активный
08.12.2024
19:50
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийscorpiiРодительский комментарий
0
войдите, чтобы ставить лайки
>> Задача ... создать автоматизированное решение для резервного хранилища своих конфигов

Как бы ... ну, не знаю ...
scorpii
Активный пользователь
Активный
08.12.2024
19:56
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийx230Родительский комментарий
+1
войдите, чтобы ставить лайки
все оказалось просто и без скрытого смысла.
а openbox-ом, глядя на Вас, и сам заинтересовался. мне как раз нужно что-то подобное для моего ноута. q4os идет "под нож", коль супругой не востребован. пока пристроил cachyos+openbox. Может и скриншот появится...
x230
Активный пользователь
Активный
08.12.2024
22:49
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийscorpiiРодительский комментарий
0
войдите, чтобы ставить лайки
>> скриншот

Вот это интересно!
Вот это мы завсегда приветствуем, а то как же!..
xKDE
Активный пользователь
Активный
09.12.2024
17:07
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийscorpiiРодительский комментарий
0
войдите, чтобы ставить лайки
Связка не "рабочая"! На побаловаться оно, конечно, сойдёт!
x230
Активный пользователь
Активный
09.12.2024
17:33
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийxKDEРодительский комментарий
0
войдите, чтобы ставить лайки
А чего за "Связка" ?
Что я упаскаю?
xKDE
Активный пользователь
Активный
09.12.2024
17:46
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийx230Родительский комментарий
0
войдите, чтобы ставить лайки
cachyos+openbox
Mockingbird
Активный пользователь
Активный
09.12.2024
18:13
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийxKDEРодительский комментарий
0
войдите, чтобы ставить лайки
Это потому, что CachyOS компилирует пакеты с набором инструкций x86-64-v3, x86-64-v4 и Zen4, а также LTO для повышения производительности, и старенький процессор на ноутбуке может не получить ожидаемый прирост производительности?
Minor748
Активный пользователь
Активный
09.12.2024
18:32
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийMockingbirdРодительский комментарий
0
войдите, чтобы ставить лайки
Пакеты уже собранные есть под эти версии архитектуры. Подключал, обновлял, ставил те пакеты. А потом там сломалось что-то и обновление прерывалось (из-за одного сломанного пакета ffmpeg)
https://ventureo.codeberg.page/source/extra-optimizations.html#alhp-repository
Mockingbird
Активный пользователь
Активный
09.12.2024
19:56
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийMinor748Родительский комментарий
+1
войдите, чтобы ставить лайки
ALHP's x86-64-v3 repos это ведь был эксперимент одного человека...
https://www.reddit.com/r/archlinux/comments/oflged/alhp_archlinux_recompiled_for_x8664v3_experimental/

У Cashy OS свои репозитории и ядра.
https://github.com/CachyOS/linux-cachyos#cachyos-repositories
И за 3 года своего существования он поднялся в топ 10 рейтинга DistroWatch. Поэтому сказать, что дистрибутив плохой или вариант с перекомпиляцией не востребован сложно. в инфополе попадало пару блогеров, которые его восхваляли как самый лучший для геймера/контент-мейкера.
Поэтому и интересно, что в связке Cashy OS
и openbox не так. Openbox с arch дружит (пример Archcraft), а других существенных отличий, кроме компиляции, между чистым Arch и Cashy OS я припомнить не могу.

P.S. есть еще аналогичный дистрибутив, но на Debian sid - PikaOS 4
xKDE
Активный пользователь
Активный
10.12.2024
07:05
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийMockingbirdРодительский комментарий
+1
войдите, чтобы ставить лайки
Opennet'у привет!)
LTO то особо не мешает, а вот то, что они всё больше полагаются на PGO, притормозит олдскульное железо!)
scorpii
Активный пользователь
Активный
09.12.2024
21:12
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийxKDEРодительский комментарий
0
войдите, чтобы ставить лайки
Более чем рабочая. Конфиг известный и на мой скромный взгляд - один из лучших для openbox. Заработал у меня на debian (sid), opensuse (tumbleweed), cachyos. На cachyos пока самый интересный по работающему функционалу и скорости. Скорей всего скриншот будет именно с этого дистрибутива. Пока изучаю и настраиваю "под себя". Еще один конфиг оконного менеджера в моей коллекции, в будущем планирую частично переделать на свой лад. Для ноута, тайлинг - так себе вариант, а вот openbox - прям в точку.
xKDE
Активный пользователь
Активный
10.12.2024
07:15
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийscorpiiРодительский комментарий
0
войдите, чтобы ставить лайки
Да дело же не в конфиге. Работать то оно будет, только это как попытка запрячь тройку вороных в скоростной экспресс!) Для процессов, требующих работоспособности, не советовал бы вообще ролинг и заброшенную коробку! Хотя из wm-ов мне она тоже нравится! Но время идёт...
space-natraj
06.12.2024
05:03
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Спасибо! Храню еще репозитории на bitbucket, он мнее популярный но работает отлично. Красивый интерфейс у вас, что за DE?
scorpii
Активный пользователь
Активный
06.12.2024
11:03
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийspace-natrajРодительский комментарий
0
войдите, чтобы ставить лайки
> Красивый интерфейс у вас, что за DE?

Hyprland
Rom
Активный пользователь
Активный
06.12.2024
22:02
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
P.S Вообще я так понял. вы не кодер. зачем вам gitlab? тем более кодерам он нафик не вперся. кроме работы на богатых человеков
Че то у админа стерлось. что внятно читается я оставил.
scorpii
Активный пользователь
Активный
06.12.2024
22:30
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийRomРодительский комментарий
0
войдите, чтобы ставить лайки
а что только кодерам нужно(можно) пользоваться git? впервые слышу))
Rom
Активный пользователь
Активный
06.12.2024
22:39
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийscorpiiРодительский комментарий
+1
войдите, чтобы ставить лайки
Ну фиг его знает, сам кодил пользовался, потом когда свои проекты появились как то забыбыл про него....про гитлаб, там куча остановок, я не стал вникать.
Погромист
10.12.2024
15:27
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Всё очень проще. Создаём репы на обоих ресурсах с одинаковым именем. В локальной репе создаём два remote:

1. github main.
2. gitlab main.

Как-то так должно получиться:
$ git remote -v
githubgit@github.com:any/something.git (fetch)
githubgit@github.com:any/something.git (push)
gitlabgit@gitlab.com:any_/something.git (fetch)
gitlabgit@gitlab.com:any_/something.git (push)

После этого спокойно пишите свой проект, фиксируете транзакции в Git и запушиваете когда вам хочется на каждый ресурс своей командой.

$ git push github main

и/или

$ git push gitlab main

Ничего придумывать не надо, всё уже придумали до вас.
Mockingbird
Активный пользователь
Активный
11.12.2024
10:12
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийПогромистРодительский комментарий
0
войдите, чтобы ставить лайки
Проще? Или один раз настроить и обновляться одной командой.
>> Теперь каждый раз при вызове команды:
# git push -uf origin main
вместе с основным репозиторием проекта на GitLab будет автоматически обновляться и репозиторий «зеркала» на GitHub.
Или каждый раз
>>запушиваете когда вам хочется на каждый ресурс своей командой.
Если ресурсов 1-2 это может и удобно, а если их будет больше...

Написать комментарий

Ваше имя:
Текст комментария:
  • Уважать других.
  • Не ругаться.
  • Без оскорблений.
  • Без грубости.
  • Не переходить на личности.
  • Писать на русском языке.
  • Без политики.
  • Без флуда.
Правила