Могу ли я отправить более чем в один репозиторий с помощью одной команды в git?

В принципе хотел сделать что-то вроде git push mybranch to repo1, repo2, repo3

сейчас я просто набираю push много раз, и если я тороплюсь с нажатием, я просто отправляю их все в фоновый режим git push repo1 & git push repo2 &

Мне просто интересно, поддерживает ли git то, что я хочу сделать, или, может быть, есть умный скрипт, или, может быть, способ отредактировать файл конфигурации локального репо, чтобы сказать, что ветка должна быть перенесена на несколько пультов дистанционного управления.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
41
0
6 974
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

У меня есть единственный пустой репозиторий, который живет в моем домашнем каталоге, в который я нажимаю. Хук post-update в этом репозитории затем подталкивает или выполняет синхронизацию с несколькими другими общедоступными местоположениями.

Вот мои хуки / пост-обновление:

#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, make this file executable by "chmod +x post-update".

# Update static info that will be used by git clients accessing
# the git directory over HTTP rather than the git protocol.
git-update-server-info

# Copy git repository files to my web server for HTTP serving.
rsync -av --delete -e ssh /home/afranco/repositories/public/ [email protected]:/srv/www/htdocs/git/

# Upload to github
git-push --mirror github 

это хорошо. хотите поделиться или объяснить git-update-server-info?

kch 03.10.2008 04:00

Как я добавил к ответу: git-update-server-info записывает некоторые файлы статической информации, которые будут использоваться клиентами git, обращающимися к каталогу git через HTTP, а не по протоколу git. Для получения дополнительной информации см. Следующее: kernel.org/pub/software/scm/git/docs/…

Adam Franco 04.10.2008 02:03
Ответ принят как подходящий

У вас может быть несколько URL-адресов для каждого пульта в git, даже если команда git remote, похоже, не раскрывает последний, который я проверял. В .git/config поставьте что-то вроде этого:

[remote "public"]
    url = [email protected]:kch/inheritable_templates.git
    url = kch@homeserver:projects/inheritable_templates.git

Теперь вы можете сказать «git push public», чтобы отправить сразу в оба репозитория.

Хороший совет. Обратите внимание, это работает только для push. Для получения, похоже, просто используется первая запись URL-адреса. Также кажется, что вы можете настроить таргетинг на ветку на этом мульти-пульте. Таким образом, вы можете просто выполнить "git pull" без удаленного имени, если вы добавите что-то подобное в свою конфигурацию [branch "master"] remote = public

studgeek 09.03.2012 10:50

Спасибо, спасает мне жизнь!

Michal Rus 16.08.2013 15:09

Другие вопросы по теме