Отправить код более чем в один источник

Я хочу выполнить git push, и изменения должны быть отправлены в два разных источника. Есть ли способ нажать более чем на один источник с помощью одной команды с git? Может, хороший крючок?


person jacksoncage    schedule 25.10.2012    source источник
comment
Возможный дубликат: stackoverflow.com/questions/4255865 /   -  person Aamir    schedule 26.10.2012


Ответы (2)


Я использовал два метода для этого. Один метод, который я нахожу удобным, когда у меня есть разветвленный репозиторий и вышестоящий удаленный сервер, заключается в использовании параметра конфигурации pushurl на удаленном сервере. Только для происхождения это будет выглядеть примерно так:

[remote "origin"]
    url = [email protected]:user/repo.git
    pushurl = [email protected]:user/repo.git
    pushurl = [email protected]:me/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

В случае с разветвленным репозиторием я использую трюк pushurl в удаленном upstream и заставляю его отправлять как в мой форк, так и в вышестоящий репозиторий. Это помогает синхронизировать основные ветки с небольшой суетой.

Я также использовал хук post-receive для репозиториев, которые я разместил в своей инфраструктуре, чтобы отразить их в другом месте (например, GitHub). Хук post-receive выглядит следующим образом:

nohup git push --mirror [email protected]:user/repo.git &> ~/.mirror.log

Затем я отправляю в репозиторий на своем сервере, затем сервер отправляет на клон GitHub. Вам нужно убедиться, что у вас правильно настроены ключи SSH, но в остальном это довольно просто.

person John Szakmeister    schedule 25.10.2012

Возможно, добавьте это в свой .git/config

[alias]
push2 = ! git push remote1 && git push remote2
person Michael Krelin - hacker    schedule 25.10.2012