Как отправить пул-запрос на Git - PullRequest
56 голосов
/ 04 июня 2011

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

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

Ответы [ 3 ]

76 голосов
/ 04 июня 2011

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

Native Git

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

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

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

Запросы на извлечение GitHub

При использовании веб-службы GitHub , Запрос на извлечение - это полнофункциональный интерактивный инструмент для совместной работы.Вытягивающий запрос GitHub имеет:

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

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

Заключение

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

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

Термин "запрос на извлечение" - это , а не специфический для github термин.

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

Для более подробных объяснений и экономии поглядывая на гугл:

Кстати, это не новая функция.

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

10 голосов
/ 06 июня 2011

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

...