Я хочу выполнить git push, и изменения должны быть отправлены в два разных источника. Есть ли способ нажать более чем на один источник с помощью одной команды с git? Может, хороший крючок?
Отправить код более чем в один источник
Ответы (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, но в остальном это довольно просто.
Возможно, добавьте это в свой .git/config
[alias]
push2 = ! git push remote1 && git push remote2