34. Перебазування
Цілі
- Використовувати команду rebase замість команди merge.
Отже, ми повернулися в точку до першого злиття і хочемо перенести зміни із master у нашу гілку style.
Цього разу для перенесення змін з гілки master ми будемо використовувати команду rebase замість merge.
Виконайте:
git checkout style git rebase master git hist
Результат:
$ go style Switched to branch 'style' $ $ git rebase master First, rewinding head to replay your work on top of it... Applying: Added css stylesheet Applying: Hello uses style.css Applying: Updated index.html $ $ git hist * 6e6c76a 2011-03-09 | Updated index.html (HEAD, style) [Alexander Shvets] * 1436f13 2011-03-09 | Hello uses style.css [Alexander Shvets] * 59da9a7 2011-03-09 | Added css stylesheet [Alexander Shvets] * 6c0f848 2011-03-09 | Added README (master) [Alexander Shvets] * 8029c07 2011-03-09 | Added index.html. [Alexander Shvets] * 567948a 2011-03-09 | Moved hello.html to lib [Alexander Shvets] * 6a78635 2011-03-09 | Add an author/email comment [Alexander Shvets] * fa3c141 2011-03-09 | Added HTML header (v1) [Alexander Shvets] * 8c32287 2011-03-09 | Added standard HTML page tags (v1-beta) [Alexander Shvets] * 43628f7 2011-03-09 | Added h1 tag [Alexander Shvets] * 911e8c9 2011-03-09 | First Commit [Alexander Shvets]
01 Злиття VS перебазування
Кінцевий результат перебазування дуже схожий на результат злиття. Гілка style в даний час містить всі свої зміни, а також всі зміни гілки master. Однак, дерево комітів значно відрізняється. Дерево комітів гілки style було переписано таким чином, що гілка master є частиною історії комітів. Це робить ланцюг комітів лінійним і набагато більш читабельним.
02 Коли використовувати перебазування, а коли злиття?
Не використовуйте перебазування …
- Якщо гілка є публічною і розшаренною. Переписування загальних гілок заважатиме роботі інших членів команди.
- Коли важлива точна історія комітів гілки (тому що команда rebase переписує історію комітів).
Враховуючи наведені вище рекомендації, я волію використовувати rebase для короткочасних, локальних гілок, а злиття для гілок у публічному репозиторію.