GitHub - как подать индивидуальный запрос на pull в случае нескольких коммитов

Я сделал несколько коммитов в моем локальном репозитории, и теперь я намерен выполнить запрос на перенос, чтобы передать эти изменения в источник/мастер.

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

Обновление Чтобы прояснить этот вопрос, я разветкил новое местное репо от ведущего/ведущего. Затем, в моей noobie-ness, я сделал новые файлы в моем локальном хозяине без разветвления репо. Таким образом, мой вопрос заключается в том, чтобы эти изменения были привязаны к локальному мастер-репо, есть ли способ поднять запросы на загрузку для каждого нового файла один за другим, а не для всех из них за один раз.

Большое спасибо.

Ответы

Ответ 1

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

Используя командную строку git, используя origin в качестве собственного удаленного репозитория github, upstream - это восходящий пульт:

git checkout -b {my_pull_request_feature_branch} upstream/master
git cherry-pick {sha1_of_first_commit_for_feature_X} [sha1_of_another_commit_for_feature_X] ...
git push origin {my_pull_request_feature_branch}

Повторите для каждого запроса на растяжение.

Когда вы делаете запрос на перенос на GitHub, вы можете выбрать, какую ветку вы хотите отправить в свой запрос.

Ответ 2

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

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