Продвинутый уровень (14 из 15)

<aside> <img src="/icons/calendar-day_gray.svg" alt="/icons/calendar-day_gray.svg" width="40px" />

13 июня 2026

</aside>

<aside> <img src="/icons/clock-alternate_lightgray.svg" alt="/icons/clock-alternate_lightgray.svg" width="40px" />

20 минут

</aside>

  1. Команда сталкивается с частыми и сложными конфликтами при слиянии ветки фичи обратно в main. Ветка фичи разрабатывается длительное время (несколько недель) без регулярных интеграций изменений из main. Оцените основную причину возникновения этих конфликтов.

  2. В проекте необходимо исключить из отслеживания все новые файлы в директории logs, но сохранить уже закоммиченные. Какой метод выбрать?

  3. Как добавить игнорирование node_modules только в корне проекта?

  4. Вы работаете в ветке feature/new-customer-model, которая была создана командой git checkout -b feature/new-customer-model. После завершения разработки вы пытаетесь отправить изменения в удаленный репозиторий origin и выполняете команду git push origin.

    Какой результат вы получите и почему?

  5. Какой командой можно зафиксировать только часть изменений в файле при подготовке коммита?

  6. После завершения поиска проблемного коммита с помощью git bisect, какую команду следует выполнить для возврата к нормальной работе?

  7. Что содержит файл .gitmodules в проекте с подмодулями?

  8. Какой подход минимизирует риск "сломать" пользователям деплой при публикации горячего патча к релизу?

  9. Ваш коллега, работая над коммитами в ветке main, заметил: история коммитов в ней содержит коммит 325b012 с очень большим файлом debug.log и другими изменениями. Этот файл уже удален из репозитория в коммите 8dd9645, но всё еще существует в истории и усложняет работу с репозиторием. Он выполнил какую-то операцию с деревом коммитов и удалил этот файл из всех предыдущих коммитов.

    Начальное состояние ветки — вывод git log --oneline:

    1 f1fe759 (HEAD -> main) Fixed documentation and comments
    2 8dd9645 Removed debug.log
    3 c60f0ed Finished main feature
    4 325b012 Added model implementation
    5 e21d3cc Initial commit
    

    Итоговое состояние ветки (вывод git log --oneline):

    1 62db399 (HEAD -> main) Fixed documentation and comments
    2 af98fe5 Removed debug.log
    3 f7048f0 Finished main feature
    4 4d1de5 Added model implementation
    5 e21d3cc Initial commit
    

    Какую операцию из перечисленных выполнил ваш коллега?

  10. Разработчик присоединился к проекту и склонировал основной репозиторий командой git clone <URL_проекта>. После этого он обнаружил, что каталоги, предназначенные для подмодулей (vendor/libA, external/libB), пусты, хотя они определены в файле .gitmodules. Какую команду необходимо выполнить в корневой директории проекта, чтобы загрузить код всех подмодулей согласно их зафиксированным версиям в основном проекте?

  11. В проекте изменился адрес репозитория подмодуля. Как обновить его в основном проекте?

  12. В каком случае использование Git Subtree подходит лучше Submodule?

  13. Какой Git-хук можно использовать для проверки содержимого коммита на наличие секретных ключей до отправки в репозиторий?

  14. После слияния ветки feature/payment-logic в main в продакшен-среде начались сбои. Вы выяснили, что ошибка была в двух коммитах внутри этой ветки. Из-за сложной зависимости между другими изменениями откат всей ветки невозможен.

  15. Как Git Flow рекомендует оформлять новый релиз приложения?