Как создать пул-реквест с частью коммитов другой ветки?

Чтобы создать пул-реквест с частью коммитов из другой ветки, вам потребуется выполнить несколько шагов.

1. Вначале убедитесь, что у вас есть локальная копия репозитория Git на вашем компьютере. Если нет, склонируйте репозиторий с помощью команды git clone <URL>, где <URL> - это URL-адрес удаленного репозитория.

2. После того, как у вас есть локальная копия репозитория, перейдите в рабочую директорию с помощью команды cd <путь к рабочей директории>.

3. Убедитесь, что у вас есть две ветки: та, из которой вы хотите взять часть коммитов (в дальнейшем будем называть ее "эталонной веткой") и ветка, в которую вы хотите внести эти коммиты (в дальнейшем будем называть ее "целевой веткой"). Если одной из этих веток нет, выполните команду git checkout -b <имя ветки> для создания новой ветки.

4. Теперь вам нужно определить список коммитов, которые вы хотите взять из эталонной ветки. Чтобы это сделать, узнайте хэш-коды коммитов с помощью команды git log на эталонной ветке. Скопируйте хэш-коды нужных коммитов.

5. Теперь перейдите на целевую ветку с помощью команды git checkout <имя целевой ветки>.

6. Добавьте коммиты из эталонной ветки в целевую ветку, используя команду git cherry-pick <хэш-код коммита>, где <хэш-код коммита> - это хэш-код коммита, который вы хотите взять. Повторите эту команду для каждого коммита, который вы хотите добавить.

7. После того, как вы добавили все нужные коммиты, выполните команду git push origin <имя целевой ветки>, чтобы отправить изменения в удаленный репозиторий.

8. Теперь перейдите на страницу репозитория на сайте хостинга Git (например, GitHub) и создайте новый пул-реквест, указав в качестве базовой ветки целевую ветку, а в качестве ветки для сравнения эталонную ветку.

9. В описании пул-реквеста укажите, какие именно коммиты вы добавили из эталонной ветки, и почему эти изменения необходимы.

10. Наконец, отправьте пул-реквест и дождитесь его рассмотрения и принятия ваших изменений.

Таким образом, вы создадите пул-реквест, содержащий только выбранные коммиты из другой ветки. Это даст возможность другим разработчикам рассмотреть ваши изменения и обсудить их, прежде чем они будут внесены в основную ветку проекта.