GIT
Быстрый переход к обучению
Что нужно знать
- Базовый workflow:
status,add,commit,diff,log. - Работа с ветками:
branch,checkout/switch,merge,rebase. - Безопасные откаты:
revertvsresetи когда что использовать. - Совместная разработка: pull request, code review, protected branches.
- Конфликты и стратегия их разрешения.
Что уметь объяснить на собеседовании
- Разница
mergeиrebaseв реальной команде. - Почему
revertчаще безопаснее для shared-веток. - Как действовать при конфликте в hotfix-сценарии.
- Как поддерживать чистую историю без потери контекста.
Грейд-фокус
- Junior: уверенная работа с локальными изменениями, ветками и pull request.
- Middle: clean history, безопасные релизы, разрешение конфликтов без потери контекста.
- Senior: branch strategy команды, release governance, процессы quality gates.
Глубокие кейсы собеседования
-
Сломали shared-ветку force-push: сильный ответ: зафиксировать инцидент, восстановить референсы, ретроспектива процесса, защита branch rules.
-
Длинная feature-ветка конфликтует со всем: сильный ответ: дробить на маленькие PR, регулярная синхронизация с
main/dev, feature-flags. -
Ошибочный релиз уже в production: сильный ответ: быстрый
revert, проверка smoke, postmortem с действиями по предотвращению повторения.
Практический минимум
- Смоделировать конфликт в локальном репозитории и решить его.
- Сделать feature-ветку, 3 коммита, аккуратный merge в
dev. - Выполнить безопасный откат через
revert. - Подготовить короткий PR-шаблон для команды.
Типовые ловушки
- Использовать
reset --hardв общей ветке. - Путать рабочее дерево, staged и commit history.
- Игнорировать последствия rebase после публикации ветки.
- Делать большие PR без внятного контекста ревьюерам.
Self-review перед собеседованием
- Я могу объяснить разницу merge/rebase на реальном workflow.
- Я понимаю, когда нужен
revert, а когда допустимreset. - Я умею решать конфликт осознанно, а не механически.
- Я могу описать безопасный процесс релиза и отката.
Связанные материалы
Архивный монолит
Полный старый материал: GIT (архив)