В поисках лучшего сервиса управления своими проектами обычно рассматриваются такие платформы как: GitHub и GitLab. Иногда пользователи используют оба сервиса одновременно, и тут встает вопрос/задача: каким образом организовать автоматическое сохранение изменений своих проектов сразу на обоих веб-репозиториях git. GitLab бесплатно предлагает только отправку «зеркала» на сторонний сервис, обратная функция у них — платная.
На GitHub же этот функционал может быть получен бесплатно через систему персональных электронных ключей (токенов), которые уже несколько лет используются на платформе взамен авторизации по имени и паролю. Для этого нужно всего лишь сгенерировать персональный токен, настроить срок действия и области распространения и в последствии использовать его для доступа к репозиторию.
Сделать это можно зайдя в настройки профиля «Settings» → «Developer settings» → «Personal access tokens» → «Tokens (classic) → «Generate new token (classic)» со страницы github или перейдя по адресу: https://github.com/settings/tokens/new
После того, как электронный ключ будет создан, нужно его скопировать или сохранить для будущего использования; повторно увидеть его не получится, придется генерировать новый. Этот ключ мы будем использовать для создания правила автоматической синхронизации репозитория GitHub, как зеркала основного репозитория GitLab при любом изменении последнего. Далее рассмотрим 2 варианта реализации решения поставленной задачи.
В первом случае, воспользуемся веб-версией сервиса GitLab
Для этого в настройках нашего репозитория, который будет использован в качестве «зеркала»для GitHub, нужно применить правило.
В поле адреса нужно вписать следующее:
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
Комментарии
15:32
Но думаю, тут не хватает зеркал на 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
16:07
Вот и у меня так текст слипается после сохранения черновика, приходится в редакторе его править
10:19
попробуйте материнский вариант:
https://gitea.com/
13:15
18:07
Красаучег!..
Даже не представляешь насколько я "не айтишник"...
Гы-гы...
Кстати поэтому не участвую в обсуждении...
Так интересно наблюдать категоризазацию контингента...
Как статистику это - просто кайфушка!..
+
18:11
А зря... Я ведь тоже "Даже не представляешь насколько я "не айтишник". В самые дебри не лезу, но некоторыми темами интересуюсь. И данная, как раз не совсем про айти))
19:38
"Зеркалирование репозиториев" - не айти-сфера?
Я точно на той станции сошёл?
19:45
Задача была, всего лишь навсего создать автоматизированное решение для резервного хранилища своих конфигов. Поскольку предпочитаю git, то и решения искались вокруг него. Можно конечно и архивы кидать на облачные хранилища, кому как нравится. Но мне с git как-то сподручней и быстрей обращаться. К тому же весьма полезно, что-то новое узнать. Вы же для чего-то копаетесь в конфигах openbox, а могли просто пользоваться популярным ДЕ с его набором, менять обои и штамповать скриншоты.
19:50
Как бы ... ну, не знаю ...
19:56
а openbox-ом, глядя на Вас, и сам заинтересовался. мне как раз нужно что-то подобное для моего ноута. q4os идет "под нож", коль супругой не востребован. пока пристроил cachyos+openbox. Может и скриншот появится...
22:49
Вот это интересно!
Вот это мы завсегда приветствуем, а то как же!..
17:07
17:33
Что я упаскаю?
17:46
18:13
18:32
https://ventureo.codeberg.page/source/extra-optimizations.html#alhp-repository
19:56
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
07:05
LTO то особо не мешает, а вот то, что они всё больше полагаются на PGO, притормозит олдскульное железо!)
21:12
07:15
05:03
11:03
Hyprland
22:02
Че то у админа стерлось. что внятно читается я оставил.
22:30
22:39
15:27
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
Ничего придумывать не надо, всё уже придумали до вас.
10:12
>> Теперь каждый раз при вызове команды:
# git push -uf origin main
вместе с основным репозиторием проекта на GitLab будет автоматически обновляться и репозиторий «зеркала» на GitHub.
Или каждый раз
>>запушиваете когда вам хочется на каждый ресурс своей командой.
Если ресурсов 1-2 это может и удобно, а если их будет больше...