Skip to content

Instantly share code, notes, and snippets.

View webuxmotion's full-sized avatar
🎯
Focusing

Andrii Pereverziev webuxmotion

🎯
Focusing
View GitHub Profile

git rebase

В общем случае команда git rebase добавляет все коммиты из ветки, на которой вы находитесь, следующими за коммитом, который вы передаете git rebase как аргумент. Если передать первым аргументом ветку, Git найдет последний общий коммит между текущей веткой и целевой веткой и добавит коммиты из текущей в целевую один за одним. Можно представить себе, что git rebase по очереди "накатывает" каждый из коммитов вашей ветки на целевой коммит. При этом у всех "накатанных" коммитов изменяются метаданные (например, родительский коммит), поэтому с точки зрения Git это теперь новые коммиты.

На семинаре мы познакомились с двумя случаями применения git rebase.

Случай 1: объединение веток, git rebase как альтернатива git merge

Для того, чтобы объединить две ветки в одну (например, когда работа над задачей закончена и нужно влить это задачу в ветку master), часто используют команду git merge. Это команда объединяет ветки путем создания отдельного коммита, у которого два родителя - комм