Чтобы создать пул-реквест с частью коммитов из другой ветки, вам потребуется выполнить несколько шагов.
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. Наконец, отправьте пул-реквест и дождитесь его рассмотрения и принятия ваших изменений.
Таким образом, вы создадите пул-реквест, содержащий только выбранные коммиты из другой ветки. Это даст возможность другим разработчикам рассмотреть ваши изменения и обсудить их, прежде чем они будут внесены в основную ветку проекта.