Проверочная работа#

Контрольные вопросы#

Что такое Git?#

  • Что представляет наибольшую ценность в IT-предприятии?

    1. команда и исходный код;

    2. зарплата и карьера;

    3. активы и бренд;

    4. низкие налоги и освобождение от службы в ВС РФ;

  • Что делает Git с исходным кодом?

    1. выдает только тем, кому надо;

    2. собирает исполняемые файлы и тестирует их;

    3. хранит и управляет его состоянием;

    4. управляет разработкой ПО;

  • Дайте краткое определение Git.

    1. утилита командной строки;

    2. служба помощи разработчикам;

    3. система для изолированной работы над проектами;

    4. распределенная система контроля версий;

  • Что значит слово “система” в определении Git?

    1. набор взаимодействующих между собой программных компонент;

    2. совокупность инструментов, теории и рекомендаций;

    3. организационная структура участников проекта в динамике;

    4. в определении Git такого слова нет;

  • Что значит слово “контроль” в определении Git?

    1. набор действий над прошлыми и текущими состояниями электронных документов;

    2. защита от деструктивных действий;

    3. защита от случайных изменений;

    4. в определении Git такого слова нет;

  • Что значит слово “версия” в определении Git?

    1. набор электронных документов;

    2. действия по наполнению файлов полезным и согласованным содержимым;

    3. состояние файлов проекта на конкретный момент времени;

    4. в определении Git такого слова нет;

  • Что значит слово “распределенная” в определении Git?

    1. Git самодостаточна и не зависит от доступности внешних ресурсов;

    2. функциональные части Git выполняются в распределенной системе;

    3. не подвержен интернет-блокировке;

    4. в определении Git такого слова нет;

  • Что дает Git своим пользователям?

    1. работать изолированно и в команде;

    2. масштабировать процессы разработки;

    3. полный контроль над действиями других;

    4. изоляцию от команды;

  • Что лежит в основе преимущества Git над остальными аналогичными системами?

    1. хеш-суммы для защиты коммитов от подмены данных;

    2. репутация первоначального автора Линуса Торвальдса;

    3. помощь в продвижении инструмента через GitHub и GitLab;

    4. концепция веток и ее удачная техническая реализация;

История развития СКВ#

  • Перечислите основные этапы развития СКВ в правильном порядке.

  • Чем характеризуются разные типы СКВ?

  • Какие из СКВ относятся к локальным, централизованным и децентрализованным?

  • В каких СКВ риск потерять хранилище выше?

  • Какие СКВ привязывают своих клиентов к внешним ресурсам?

Управление версиями#

  • Что из себя представляет проект программы?

    1. набор текстовых файлов в отдельном каталоге, возможно сгруппированных по подкаталогам;

    2. установщики различных версий, готовые для скачивания из файлового сервера;

    3. команда с руководителем;

    4. веб-страничка со ссылками на ресурсы проекта;

  • Какие файлы составляют проект программы?

    1. артефакты сборки программы;

    2. техническое задание на программу;

    3. исходные коды, документация, тесты, сценарии сборки;

    4. руководство по эксплуатации;

  • Что такое хранилище?

    1. каталог проекта;

    2. связанный с проектом набор файлов;

    3. платформа, на которой хранятся исходные коды;

    4. база данных с изменениями файлов проекта;

  • Какая связь между хранилищем и файлами проекта?

    1. файлы проекта извлекаются из хранилища;

    2. файлы проекта хранятся в явном виде в хранилище;

    3. файлы проекта хранятся не в хранилище;

    4. хранилище – это набор файлов проекта;

  • Что такое “рабочая копия”?

    1. состояние файлов проекта на конкретное время;

    2. копии файлов, необходимых для работы;

    3. результат выполненной работы, сохраненный в файлах;

    4. рабочее место разработчика;

  • Что такое фиксация изменений?

    1. внесение изменений в хранилище;

    2. завершение работы над задачей;

    3. донесение до руководителя о завершенной работе;

    4. сохранение изменений в файлах на диск;

  • Что будет результатом фиксации изменений?

    1. хеш-сумма;

    2. ревизия;

    3. коммит;

    4. обновленная рабочая копия;

  • Чем отличается локальное хранилище от удаленного?

    1. локальное хранилище располагается в локальной сети, а удаленное – в глобальной;

    2. локальное хранилище – это доступное в файловой системе хранилище, а удаленное перемещено в корзину;

    3. в локальном хранилище оформляют и фиксируют изменения, а через удаленное обмениваются изменениями;

    4. в удаленном хранилище оформляют и фиксируют изменения, а через локальное обмениваются изменениями;

  • Где размещается локальное хранилище?

    1. в подкаталоге .git рабочего каталога;

    2. в рабочем каталоге;

    3. внутри удаленного хранилища;

    4. в текущем каталоге;

  • Что значит “проталкивать изменения”?

    1. передать их другому разработчику;

    2. выложить в удаленное хранилище;

    3. освобождать место для следующих изменений;

    4. передавать изменения следующему исполнителю;

  • Что такое ветка?

    1. альтернативные пути развития проекта с общей историей;

    2. коммиты без родителей;

    3. коммиты без потомков;

    4. последние ревизии в хранилище;

  • Какая судьба ожидает неосновную ветку в будущем?

    1. будет слита или забыта;

    2. станет основной;

    3. автоматически сольется с другой веткой;

    4. прорастет другими ветками;

Набор изменений#

  • Какие изменения претерпевает рабочий каталог?

  • В чем отличие исходного кода от обычного (повествовательного) текста?

  • Какой минимальный элемент с точки зрения изменения содрежимого файла?

  • Почему не получится воспользоваться СКВ применительно к офисным документам (*.docx, *.xlsx, *.pdf)?

  • Что такое патч?

  • Какие преимущества у патча?

  • Опишите структуру патча в универсальном формате.

Дерево коммитов#

  1. Что такое коммит?

  2. Можно ли восстановить состояние рабочей копии по одному коммиту? Почему?

  3. Что из себя представляет дерево коммитов?

  4. Что такое “достижимый коммит”?

  5. Что из себя представляет ветка с точки зрения дерева коммитов?

  6. Чем отличается ветка от тега?

  7. Для чего предназначен указатель HEAD в дереве коммитов? Куда он указывает?

Клиенты Git#

  • Для чего предназначены Git-клиенты?

  • По каким признакам можно классифицировать Git-клиенты?

  • Какой из клиентов будет изучаться на этом курсе?

  • Что дает утилита “gitk”?

  • Что дает утилита “git gui”?

  • В каких случаях удобно работать с графическими клиентами?

  • Как запустить из командной строки графический клиент, поставляемый с Git?

Упражнения#

  1. Проверьте, установлена ли в систему Git?

  2. Представьте, что в команде работают три человека. Изначально над проектом работал один человек, который подготовил прототип программы. К нему присоединился второй, который работал только над новым компонентом программы. Затем присоединился третий, который исправлял ошибки во всей программе. Нарисуйте возможную версию дерева коммитов и дерево каталогов проекта.