Много раз объяснялось, что такое ребаз и что такое слияние, но когда и что использовать?
Когда использовать rebase?
- когда вы не нажали на ветку / над ней больше никто не работает
- Вы хотите полную историю
- вы хотите избежать всех автоматически сгенерированных сообщений о "слиянии ..."
Как git rebase меняет историю. Поэтому вы не должны использовать его, когда кто-то еще работает над той же веткой / если вы нажали ее. Но если у вас есть локальная ветвь, вы можете выполнить мастер слияния ребаз перед слиянием своей ветки с главной, чтобы сохранить более чистую историю. Делая это, после слияния с основной ветвью не будет видно, что вы использовали ветку в основной ветке - история «чище», поскольку у вас нет автоматически сгенерированной «слитой ..», но все еще есть полная история в вашей главной ветке без автоматической генерации коммитов "merged ..". Тем не менее, убедитесь, что вы используете git merge feature-branch --ff-only
, чтобы избежать конфликтов при создании одного коммита при слиянии вашей функции с основной. Это интересно, если вы используете ветви функций для каждой задачи, над которой работаете, так как вы получаете историю ветви функций, но не коммит "объединено .."
Второй сценарий будет, если вы разветвляетесь из ветки и хотите знать, что изменилось в основной ветке. rebase дает вам информацию, поскольку она включает в себя каждый коммит.
Когда использовать слияние?
- когда вы нажали на ветку / другие тоже работают над этим
- вам не нужна полная история
- достаточно просто объединить
Когда вам не нужно или вы хотите иметь всю историю ветви функций в вашей основной ветке или если другие работают в той же ветке / вы нажали ее. Если вы все еще хотите иметь историю, просто объедините мастер с ветвью объектов, прежде чем объединять ветвь объектов с мастером. Это приведет к ускоренному слиянию, при котором у вас будет история ветви объектов в вашем мастере (включая коммит слияния, который был в вашей ветви функций, потому что вы слили мастер в него).