Как отправить запрос на запрос на Git

Недавно мы перешли на Git из SVN. Мы установили голый репозиторий на одном компьютере в нашей локальной сети и клонировали на других машинах. Теперь, когда кто-либо делает изменения и совершает, мы хотим, чтобы он отправил запрос на перенос на голый репо (путем сообщения или отправки по электронной почте или каким-либо другим способом), после чего он перейдет к изменениям и потянет их на голый репозиторий (так же, как он работает на GitHub).

Нужно ли устанавливать какой-либо интерфейс или есть какие-то команды в Git?

Ответ 1

Оба Git (программное обеспечение) и GitHub (веб-служба) имеют концепцию под названием "запрос на pull" и, к сожалению, они не совсем то же самое.

Нативный Git

Нативная команда Git request-pull имеет очень короткую страницу руководства со следующим описанием одного предложения:

Обобщает изменения между двумя коммитами на стандартный вывод и включает заданный URL в сгенерированную сводку.

Это довольно низкоуровневая команда, которая генерирует краткое описание изменений, подходящих для публикации в список рассылки. Другие пользователи могут использовать URL-адрес, опубликованный в этом "запросе на pull", чтобы вручную вносить изменения в свой собственный репозиторий.

Запросы GitHub Pull

При использовании веб-службы GitHub запрос Pull Request является полнофункциональным интерактивным инструментом совместной работы. Запрос на загрузку GitHub имеет:

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

Стоит отметить, что Линус имеет собственное мнение относительно относительной полезности этих двух функций.

Заключение

Две описанные выше функции "pull request" аналогичны по духу, но совершенно различны в реализации. В частности, команда git request-pull не может использоваться для создания нового запроса Pull на GitHub. У вас есть несколько вариантов, если вы хотите поддерживать функциональность типа "запрос запроса":

  • Используйте GitHub. Это определенно связано с наименьшими усилиями, но если ваш проект не является общедоступным, вам придется заплатить GitHub за размещение частного репозитория. Некоторым людям может не понравиться этот выбор.
  • Используйте Gerrit. Gerrit - это программа с открытым исходным кодом, которую вы можете загрузить, которая предоставляет множество функций, подобных тем, которые доступны в GitHub. Это особенно хорошо подходит для совместной проверки кода.
  • Используйте git request-pull и список рассылки. Использование этого метода требует от ваших инженеров гораздо большей дисциплины, так как легко сбрасывать или пересылать сообщения списка рассылки. Центральная подотчетность, связанная с этим методом, отсутствует.

Ответ 2

Термин "запрос на оттяжку" не не имеет значения github.

Существует команда git request-pull, которую вы можете прочитать здесь: http://linux.die.net/man/1/git-request-pull

Для более подробных объяснений и сохранения некоторых взглядов на поиск в googling:

Это не новая функция BTW.

РЕДАКТИРОВАТЬ: Этот альтернативный ответ был сделан до того, как был изменен первоначально принятый ответ от @Greg Hewgill. Я отправил его, потому что это тот ответ, который я искал, и я думаю, что он подходит для вопрос, который задал вопрос о том, чтобы делать запросы на загрузку для пользователей, а не Необязательно, используя github (да, не все, используя git, используют github, at по крайней мере, не все время). Теперь, когда ответ orignal был переписан делая это различие явным, я оставлю этот ответ так, как я первоначально разместил его только для записи.

Ответ 3

"git способ" будет заключаться в том, что все разработчики имеют свой открытый публичный репозиторий (читают все, записывают acces для самого разработчика) на сервере как их "происхождение". И если вам нравится дополнительный "багажник" (или "стабильный" или любой другой, что вы хотите назвать), голый репо, к которому у некоторых или всех разработчиков есть доступ на запись. Разработчики отражают свое репо на своем публичном репо и тянут от других разработчиков. Таким образом, вам не придется беспокоиться, если вы нажмете что-то на свое публичное репо, которое еще не работает. (Разработчики могут просто перейти от вас к тестовой ветке и посмотреть, будет ли она работать.) Когда у вас есть стабильная каноническая ветвь, вы можете нажать ее на ретрансляцию "trunk".