Почему GitHub вызывает зарубежные представления, "запрос на выбор"?

Мне любопытно, почему GitHub называет запросы для слияния, "Pull запросы".

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

Итак, взглянем на git push... нажатие фактически натолкнуло бы зафиксированные изменения в репозиторий. И не то, что вы делаете с репо Git? Отправка "запроса" для объединения вашего кода? Итак, почему он не называется "Push-запрос"?

Ответ 1

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

Ответ 2

Запрос на перенос - это когда вкладчик, который не имеет push-доступа к репозиторию, хочет представить код для включения в проект. Например, если у вас есть проект в github, и вы единственный человек с правами фиксации, и я хочу включить в свой проект код, что мне делать?

Я разблокирую ваш репозиторий github и создаю новую ветку для моей работы. Как только я доволен текущей реализацией, я пришлю вам запрос в git pull мою ветку в ваш репозиторий (так как у меня нет прав на прямое нажатие). Когда вы выполняете git pull, у вас есть возможность для какой ветки тянуть и куда вы хотите потянуть. Возможно, вы не хотите напрямую входить в ветвь master, но в другую ветку, чтобы проверить код.

git book имеет приятный раздел о различных рабочих потоках, подобных этому.

Ответ 3

Когда вы отправляете свой патч кому-то другому, вы хотите, чтобы этот человек объединил ваше изменение в свой репозиторий. Теперь pull - выборка и слияние. Итак, если этот человек потянет ваши изменения, он тоже его объединит, что вам нужно.

Ответ 4

Когда вы отправляете запрос на вытягивание, вы просите владельца репо потянуть ваши изменения в их локальном репо (т.е. слить их). Затем это репо будет опубликовано (через git push) для публичного репо, но это подразумевается.

Вы не можете вызвать этот "push-запрос", потому что никто не толкает ваши изменения, они их вытаскивают.

Ответ 5

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