Git: пусть удаленный сервер извлекает из локального сервера - PullRequest
0 голосов
/ 20 декабря 2018

В настоящее время у меня есть следующая среда:
- локальный сервер git (Linux)
- ПК для разработки (в основном Linux)
- удаленный сервер для живого приложения (Linux)

Оба сервераможно получить доступ с ПК разработчика (через ssh), но ПК разработчика и локальный сервер git не подключены к сети (просто обычная домашняя сеть, нет переадресации или тому подобное).

Локальный сервер git имеетголые репозитории и разработчики ПК клонировали репозитории локального git-сервера.

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

Поскольку у меня никогда не было такого варианта использования ранее (удаленный не может добраться до локального сервера для извлечения), я нахожусь наполная потеря на том, как это сделать.

Заранее спасибо всем, кто пытается помочь:)

1 Ответ

0 голосов
/ 21 декабря 2018

Если я правильно интерпретирую исходный вопрос, локальный сервер доступен только для ПК разработчика , но не с удаленного сервера.

Это означает, что одним из возможных решений было бы нажать насерверный репозиторий в локальном репозитории (вместо выборки из локального репозитория в репозитории сервера).Вы даже можете нажать на пустой репозиторий:

$ git push -u <server-repo> <branch-name>

Опция -u является необязательной и используется только для установки удаленной ветви по умолчанию для последующих нажатий.

Поскольку репозиторий наУдаленный сервер не пустой (вам нужна проверка для приложений), он по умолчанию откажется от отправки в извлеченные ветви.
Существует несколько вариантов решения этой проблемы.Один из вариантов - использовать хук push-to-checkout, который, кажется, делает именно то, что вам нужно.Пожалуйста, обратитесь к git help githooks для деталей.Не забудьте настроить receive.denyCurrentBranch соответственно и , чтобы гарантировать, что индекс и файлы никогда не будут изменены удаленным сервером.

...