Установка скиллов и плагинов OpenClaw осуществляется на ваш страх и риск. Все файлы были получены из открытых источников и предоставляются «как есть». Мы не гарантируем их корректную работу, безопасность или совместимость с вашей системой. Перед установкой настоятельно рекомендуется ознакомиться с содержимым кода и убедиться, что вы понимаете, какие изменения будут внесены в вашу систему.
Продвинутые Git-workflow для реальной разработки. Этот материал выходит за рамки базовых команд вроде add / commit / push и показывает, как на практике управлять историей, ветками и сложными сценариями разработки.
Что вы узнаете
- Интерактивный rebase для очистки истории коммитов
- Поиск багов с помощью
git bisect - Параллельная работа с ветками через
worktree - Восстановление потерянных коммитов через
reflog - Работа с
subtreeиsubmodule - Sparse checkout для больших репозиториев
- Разрешение конфликтов слияния
- Cherry-pick между ветками
Когда использовать эти подходы
- Перед merge — чтобы привести историю к чистому виду
- Когда нужно найти коммит, сломавший функциональность
- Если работа ведётся параллельно в нескольких ветках
- При восстановлении после ошибок или
reset --hard - Для управления общими зависимостями между репозиториями
- При работе с монорепозиториями
Интерактивный rebase
Позволяет переписать историю: объединять, редактировать, удалять и менять порядок коммитов.
git rebase -i HEAD~5
git rebase -i main
В открывшемся редакторе можно использовать команды:
- pick — оставить как есть
- reword — изменить сообщение
- edit — изменить содержимое
- squash — объединить с предыдущим
- fixup — объединить без сохранения сообщения
- drop — удалить коммит
Типичные сценарии
- Склейка фиксов в основной коммит
- Изменение порядка коммитов
- Разделение одного коммита на несколько
Autosquash
Позволяет автоматически сгруппировать фиксы с целевыми коммитами.
git commit --fixup=
git rebase -i --autosquash main
Поиск бага через git bisect
Использует бинарный поиск по истории коммитов, чтобы найти источник проблемы.
git bisect start
git bisect bad
git bisect good v1.2.0
Git автоматически переключает коммиты, пока не найдёт проблемный. Процесс можно автоматизировать через скрипт тестирования. :
Worktree — работа с несколькими ветками
Позволяет открыть несколько рабочих директорий для одного репозитория без постоянного stash/checkout.
git worktree add ../feature-branch feature-branch
Reflog — восстановление истории
Даже если вы случайно удалили коммиты, reflog хранит историю перемещений HEAD и позволяет всё вернуть.
git reflog
git checkout
Subtree и Submodule
Используются для работы с внешними зависимостями:
- submodule — подключение внешнего репозитория как ссылки
- subtree — встраивание кода напрямую в проект
Sparse checkout
Позволяет работать только с частью репозитория — полезно для больших проектов.
git sparse-checkout init
git sparse-checkout set path/to/dir
Разрешение конфликтов
При сложных merge-конфликтах важно понимать структуру изменений и аккуратно объединять код. Git также поддерживает повторное использование решений конфликтов через rerere.
Cherry-pick
Позволяет перенести отдельный коммит из одной ветки в другую.
git cherry-pick
Итог
Git предоставляет гибкие инструменты для управления историей и рабочими процессами. Освоение этих техник даёт полный контроль над кодовой базой и значительно упрощает работу в команде. :
Файл из источника