#git-merge #pull-request #git-merge-conflict
#git-merge #запрос на извлечение #git-merge-конфликт
Вопрос:
Я немного смущен этими сценариями:
- У меня есть задача.
Я создаю ветку функций, выполняю работу здесь.
А затем я создаю запрос на извлечение в ветку release-test.
Чтобы избежать конфликтов, сначала я должен обновить свою ветку функций. Итак, я должен объединить release-test в feature.
Но в этом случае в моем запросе на извлечение у меня будет много объединенных коммитов, которые я не хочу иметь. Я хочу, чтобы в PR были только мои коммиты ветки функций.
Что мне делать в этой ситуации? - Я нажал на свою ветку функций, а затем в PR появляется конфликт. Каковы мои следующие шаги?
Я попытался вернуться к последнему коммиту, сравнил с веткой release-test, затем принудительно нажал. Это хорошая практика?
PS Я использую Intellij Idea, если это поможет
Ответ №1:
Чтобы избежать конфликтов, сначала я должен обновить свою ветку функций. Итак, я должен объединить release-test в feature.
Не делайте этого: вы всегда должны объединяться с определенных ветвей интеграции, а не наоборот.
- Ваша
feature
ветка — это конкретная ветка (специфичная для данной задачи, которую вы изолируете в своей собственной ветке) release-test
является ли ветвь интеграции (где несколько ветвей объединяются)
Если вам нужно обновить свою feature
ветку по сравнению с release-test
, перебазируйте ее:
cd /path/to/local/repo
git switch feature
git fetch
git rebase origin/release-test
# resolve potential conflict there
git push --force
Это гарантирует, что в вашем PR не будет конфликта (автоматически обновляется после push --force
), поскольку ваша feature
ветка будет добавлять новые коммиты только поверх самой последней удаленной release-test
ветки.