Мне любопытно, почему 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
Вы нажимаете фиксации из своего частного репозитория в свой публичный репозиторий. Однако вы не можете принудительно изменять какой-либо другой репозиторий, поэтому вы просите, чтобы они вытащили из вашего общего репозитория в свои.