Являются ли запросы на растяжение частью Git или функцией таких инструментов, как GitHub, Gerrit и Atlassian Stash?

Запросы Pull кажутся обычным способом для просмотра кода с помощью Git. Однако неясно, означает ли этот термин то же самое при использовании встроенного git request-pull или другого инструмента.

Вызывается ли запрос запроса внутренней функцией Git, или это общий термин для таких инструментов, как GitHub, Gerrit или Atlassian Stash?

Является ли обсуждение и "результат" обзора кода, хранящегося в истории фиксации Git или в отдельной базе данных?

Ответы

Ответ 1

Запросы Pull - это простая концепция, которая возникла при создании Git, но с тех пор была взята на разные уровни.

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

Теперь, как я уже сказал, есть разные способы сделать это, но все это сводится к тому, чтобы попросить сопровождающего втянуть ваши изменения, отсюда и название. Первоначальная цель Git была создана для ядра Linux, и они развивались с использованием списков рассылки навсегда. Поэтому для них запрос на перенос на самом деле отправляет патч по электронной почте; эти исправления на самом деле фиксируют объекты, добавленные некоторыми обычными средствами связи по электронной почте. Git имеет инструменты для генерации этого.

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

В Git книге приведен пример:

$ git request-pull origin/master myfork
The following changes since commit 1edee6b1d61823a2de3b09c160d7080b8d1b3a40:
  John Smith (1):
        added a new function

are available in the git repository at:

  git://githost/simplegit.git featureA

Jessica Smith (2):
      add limit to log function
      change log output to 30 from 25

 lib/simplegit.rb |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

Итак, это действительно просто утилита для генерации сообщений для выполнения базовой концепции.

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

Но базовое понятие остается тем же: запрашивать у сопровождающего какие-то изменения. Единственное отличие заключается в том, как этот запрос передается с помощью.

Ответ 2

Команда git request-pull может использоваться для создания "запроса на перенос" в native git. При запуске Git генерирует сводку изменений в проекте и URL-адрес репозитория Git, из которого можно извлечь код. Затем это можно отправить по почте в список рассылки или в сопровождение проектов, которые затем могут вносить изменения в свои собственные репозитории.

В этом разделе книги Pro Git содержится более подробная информация о команде git request-pull.