Это легко сделать с помощью Git с pre-receive
крючком. Конечно, для этого требуется, чтобы вы на самом деле могли устанавливать хуки, и по понятным причинам GitHub не позволяет загружать произвольные исполняемые файлы для запуска на их серверах: -)
В общем, рабочий процесс с Git или любой другой распределенной системой управления версиями заключается в том, что вы не позволяете другим людям загружать ваш репозиторий. Вместо этого вы вытаскиваете их. Это требует гораздо более низкого уровня доверия. Таким образом, это будет обходной путь № 1: не позволяйте им давить, заставляйте их раскошелиться, а затем вытащите их Таким образом, вы можете контролировать то, что входит в ваш репозиторий.
Другим обходным решением может быть создание собственного промежуточного репозитория на вашем сервере, где вы можете установить свои собственные ловушки Git. Вы можете настроить хук pre-receive
, который запрещает нажатие, если это не перемотка вперед, и хук post-receive
, который автоматически перенаправляет все нажатия на GitHub. Конечно, это означает, что вы теряете многие преимущества использования GitHub.
В качестве третьего обходного пути вы можете использовать несколько репозиториев. Это комбинация двух других подходов: иметь один репозиторий, к которому ваши соавторы могут выдвинуть, и другой, к которому только у вас есть доступ, который вы извлекаете из первого репозитория.
В любом случае вам следует подать запрос на добавление функций в GitHub (особенно, если вы платный клиент!), Поскольку это полезная функция.