ENIGMA AI
ENIGMA AI

Вопросы по Git на собеседовании для разработчиков

Вопросы по технологиям

Разбор сложных вопросов по Git: внутреннее устройство, стратегии слияния, работа с LFS и восстановление данных. Подготовьтесь к интервью.

В 2026 году Git остается стандартом, но требования к кандидатам сместились от знания команд `push/pull` к пониманию внутреннего устройства (blobs, trees, commits) и умению оптимизировать монорепозитории. На интервью для Middle+ инженеров часто спрашивают про разницу между мерж-стратегиями (ort vs recursive) и механику работы индексов в проектах на 100+ ГБ.

Внутреннее устройство Git: объекты и ссылки

Git — это контентно-адресуемая файловая система. На собеседованиях уровня Senior важно понимать, что происходит в директории .git при выполнении команд. Основные типы объектов в Git: blob (содержимое файла), tree (структура директорий), commit (метаданные и ссылка на дерево) и tag.

Хеширование и адресация

Git использует SHA-1 (или SHA-256 в новых версиях, что стало актуально к 2026 году для защиты от коллизий). Хеш генерируется на основе содержимого объекта. Если два файла в разных ветках идентичны, Git сохранит только один blob, экономя место.

Разница между Merge и Rebase

Это классический вопрос, где проверяют не только знание синтаксиса, но и понимание чистоты истории коммитов.

  • Merge: создает новый commit-узел (merge commit). Это сохраняет хронологию и показывает реальную структуру разработки, но засоряет граф при частом использовании.
  • Rebase: переносит базу ветки на новый коммит. Это создает линейную историю. В 2026 году в крупных энтерпрайз-проектах чаще требуют rebase для фича-веток, чтобы упростить бисекцию (git bisect) при поиске багов.

Риски Rebase

Главное правило: никогда не делайте rebase публичных веток (main/master/develop). Это меняет хеши коммитов, что заставляет других разработчиков вручную исправлять расхождения в своих локальных копиях.

Стратегии слияния: Ort против Recursive

С версии 2.34 стратегией по умолчанию стала ort (Ostensibly Recursive’s Twin). Она быстрее и корректнее обрабатывает переименования файлов. На собеседовании могут спросить, как Git понимает, что файл был переименован, а не удален и создан заново. Ответ: Git не хранит метаданные о переименовании, он вычисляет сходство контента (similarity index) между удаленными и добавленными файлами во время операции слияния.

Работа с большими репозиториями (LFS и Scalar)

В 2026 году работа с ML-моделями и тяжелыми ассетами требует использования Git LFS. Вместо больших файлов в репозитории хранятся текстовые указатели (pointers), а сами данные лежат на удаленном сервере. Также стоит упомянуть Scalar — инструмент от Microsoft, интегрированный в Git, который оптимизирует работу с гигантскими монорепозиториями через частичное клонирование (partial clone) и разреженные индексы (sparse-checkout).

Восстановление данных и Git Reflog

«Я сделал hard reset и потерял коммиты, что делать?» — стандартная проверка на стрессоустойчивость. Ответ: git reflog. Git хранит историю перемещения указателя HEAD в течение 30-90 дней (по умолчанию). Даже если ветка удалена, коммиты остаются в базе объектов, пока не отработает сборщик мусора (garbage collector).

Сложные сценарии: Cherry-pick и Squash

Cherry-pick полезен для переноса конкретного фикса из одной ветки в другую без полного слияния. Squash используется при слиянии Pull Request, чтобы объединить 20 промежуточных коммитов («fix typo», «add logs») в один осмысленный функциональный блок. Это стандарт де-факто в современных CI/CD процессах.

Инструменты автоматизации и Hooks

Опытный разработчик должен знать про git hooks. В 2026 году практически в любом проекте настроены pre-commit хуки для запуска линтеров и тестов. Важно упомянуть, что хуки не пушатся в репозиторий автоматически, для их синхронизации в команде используют такие инструменты, как Husky (для JS) или Lefthook (универсальный).

Часто задаваемые вопросы

Как подготовиться к собеседованию?

Полный гайд по подготовке к техническому интервью

Читать гайд