linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
Intro
Lessons
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Главы
  • How it works
  • Уроки
  • База знаний
  • Собеседование
home/git/kb/Ветки и слияния

kb/branching

Ветки в Git: branch, merge, rebase, cherry-pick

Ветка как файл с одним SHA, fast-forward и three-way merge, rebase для переписывания истории, cherry-pick для переноса одного коммита. Сравнение стратегий merge vs rebase: когда что использовать.

  • detached-headDetached HEAD

    Состояние, когда HEAD указывает прямо на коммит, а не на ветку. Безопасно для просмотра, но коммиты в этом режиме теряются, если не создать из них ветку.

  • fast-forwardFast-forward merge

    Простейшая форма merge: Git двигает указатель ветки на новый коммит без создания merge-объекта. Возможен, когда у целевой ветки нет коммитов после ветвления.

  • cherry-pickgit cherry-pick

    Берёт один коммит из другой ветки и применяет его на текущую, создавая дубликат с новым SHA. Используется для hotfix'ов в нескольких релиз-ветках и переноса одиночных коммитов.

  • mergegit merge

    Сливает другую ветку в текущую. Делает либо fast-forward (двигает указатель), либо создаёт merge-коммит с двумя родителями. При пересекающихся изменениях возможны конфликты.

  • rebasegit rebase

    Переписывает коммиты ветки, делая их потомками другого коммита. Создаёт новые SHA, история становится линейной. Безопасен только для веток, которые ещё никто, кроме автора, не видел.

  • interactive-rebaseInteractive rebase

    `git rebase -i <base>` открывает редактор со списком коммитов от `<base>` до HEAD, где можно переименовывать, объединять, удалять и переставлять их. Главный инструмент для очистки локальной истории.

  • branchВетка (branch)

    Ветка в Git - это файл в `.git/refs/heads/`, в котором лежит SHA одного коммита. Создание, переключение и удаление веток тривиальны, потому что данных в ветке - 41 байт.

Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки