- git merge - выполняет слияние коммитов из одной ветки в другую. В этом процессе изменяется только целевая ветка. История исходных веток остается неизменной.

*Преимущества*:
1. Простота,
2. Сохраняет полную историю и хронологический порядок,
3. Поддерживает контекст ветки.
*Недостатки*:
1. История коммитов может быть заполнена (загрязнена) множеством коммитов,
2. Отладка с использованием git bisect может стать сложнее.
- git rebase - сжимает все изменения в один патч. Затем интегрирует патч в целевую ветку. В отличии от *merge*, *rebase* перезаписывает историю, потому что она передаётся завершенную работу из одной ветки в другую. В процесс