Чтобы создать пул-реквест с частью коммитов из другой ветки, вам потребуется выполнить несколько шагов.
- Вначале убедитесь, что у вас есть локальная копия репозитория Git на вашем компьютере. Если нет, склонируйте репозиторий с помощью команды
git clone <URL>
, где<URL>
- это URL-адрес удаленного репозитория.
- После того, как у вас есть локальная копия репозитория, перейдите в рабочую директорию с помощью команды
cd <путь к рабочей директории>
.
- Убедитесь, что у вас есть две ветки: та, из которой вы хотите взять часть коммитов (в дальнейшем будем называть ее "эталонной веткой") и ветка, в которую вы хотите внести эти коммиты (в дальнейшем будем называть ее "целевой веткой"). Если одной из этих веток нет, выполните команду
git checkout -b <имя ветки>
для создания новой ветки.
- Теперь вам нужно определить список коммитов, которые вы хотите взять из эталонной ветки. Чтобы это сделать, узнайте хэш-коды коммитов с помощью команды
git log
на эталонной ветке. Скопируйте хэш-коды нужных коммитов.
- Теперь перейдите на целевую ветку с помощью команды
git checkout <имя целевой ветки>
.
- Добавьте коммиты из эталонной ветки в целевую ветку, используя команду
git cherry-pick <хэш-код коммита>
, где<хэш-код коммита>
- это хэш-код коммита, который вы хотите взять. Повторите эту команду для каждого коммита, который вы хотите добавить.
- После того, как вы добавили все нужные коммиты, выполните команду
git push origin <имя целевой ветки>
, чтобы отправить изменения в удаленный репозиторий.
- Теперь перейдите на страницу репозитория на сайте хостинга Git (например, GitHub) и создайте новый пул-реквест, указав в качестве базовой ветки целевую ветку, а в качестве ветки для сравнения эталонную ветку.
- В описании пул-реквеста укажите, какие именно коммиты вы добавили из эталонной ветки, и почему эти изменения необходимы.
- Наконец, отправьте пул-реквест и дождитесь его рассмотрения и принятия ваших изменений.
Таким образом, вы создадите пул-реквест, содержащий только выбранные коммиты из другой ветки. Это даст возможность другим разработчикам рассмотреть ваши изменения и обсудить их, прежде чем они будут внесены в основную ветку проекта.