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

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

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

  1. Какой формат командной строки использует утилита git?

  2. Перечислите не менее 10 команд Git и объясните коротко, что они делают.

  3. Отобразите на экране полный список команд, которые поддерживает Git-клиент командной строки.

  4. Воспроизведите сценарий, когда некоторая команда git не смогла найти хранилище и завершилась с ошибкой. Что вы порекомендуете, чтобы такого не случалось в будущем?

  5. Можно ли одновременно работать с хранилищем из разных Git-клиентов? Почему?

  6. Какую из команд используют для работы со справочной системой Git?

  7. Какие средства отображения можно использовать для просмотра справочных страниц Git?

  8. Как осуществляется выход, поиск и перемещение в пейджере less?

  9. Отобразите справочную страницу git-init(1), gittutorial(7), gitworkflows(7).

  10. Отобразите список инструкций по применению Git и откройте “Глоссарий Git”.

  11. Каким образом можно открыть справочную страницу Git в веб-браузере?

  12. Какую из команд используют для работы с настройками Git?

  13. Какие уровни настроек Git вам известны? Расскажите о них подробнее.

  14. Если настройка не задана ни на одном уровне, то какое ее значение будет использовано?

  15. Если одна и та же настройка задана по-разному на нескольких уровнях, какая из них будет использована?

  16. Где хранятся настройки?

  17. Задайте переменной web.browser значение firefox (google-chrome).

  18. Отобразите список переменных, которые вы переопределили.

  19. Отобразите только конкретную переменную. Например, user.name.

  20. Отобразите список всех переменных, которые поддерживает система.

  21. Для каких целей меняют исходный код программы?

  22. Какие действия на уровне файловой системы включает в себя изменение исходного кода?

  23. Какой командой можно посмотреть изменения в файлах рабочей копии?

  24. Какие альтернативные инструменты вам знакомы для просмотра изменений в файлах?

  25. Какой командой Git создают новое хранилище?

  26. Создайте новое хранилище.

  27. Отобразите на экране терминала каталог хранилища.

  28. Как создать чистое хранилище и где оно используется?

  29. Какая команда фиксирует изменения в хранилище Git?

  30. Что является результатом фиксации?

  31. Какие поля содержит коммит? Откуда достается информация для этих полей?

  32. Какая команда Git показывает состояние файлов в рабочей копии и хранилище?

  33. Что такое индекс и для чего он предназначен?

  34. Какая команда добавляет в индекс файлы?

  35. Какие файлы могут быть добавлены в индекс?

  36. Какая команда показывает изменения в индексированных файлах?

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

  38. Какими двумя способами можно передать сообщение при формировании коммита?

  39. Что делает опция -a команды git commit?

  40. Что делает опция -v команды git commit?

  41. При каких условиях опция -v команды git commit не даст эффекта?

  42. Какие требования налагают на коммиты? Зачем это нужно?

  43. В каких состояниях могут быть файлы для Git?

  44. Как реализовано игнорирование файлов в Git?

  45. Какие файлы вы бы проигнорировали в своем проекте?

  46. Нарисуйте граф состояний файлов.

  47. Почему один файл может быть как измененным, так и проиндексированным?

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

  49. Что делает опция -s команды git status?

  50. Какая команда позволяет убрать файл из индекса?

  51. Какая команда позволяет откатить изменения в файле?

  52. Что делает команда git rm?

  53. Что делает команда git mv?

  54. Ответы на какие вопросы хранит история изменений проекта?

  55. Какая команда позволяет просмотреть список коммитов хранилища?

  56. Перечислите поля коммита?

  57. Чем отличается автор от коммитера? В каких случая они совпадают, а в каких нет?

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

  59. Какие предопределенные форматы отображения коммитов для команды git log вам известны?

  60. Какие из форматов отображения помещают информацию о коммите в одну строку?

  61. Чем отличается вывод short от medium (medium от full, full от fuller, от)?

  62. Где можно применить вывод git log в формате отображения email и reference?

  63. Что содержит вывод git log --format=raw?

  64. Чем отличается вывод git log --format=oneline от git log --oneline?

  65. Как настроить собственный формат отображения в git log?

  66. Что делает опция --patch команды git log?

  67. Что делает опция --stat команды git log?

  68. Что делает опция --relative-date команды git log?

  69. Какие коммиты показывает команда git log без аргументов?

  70. Как можно отобразить все коммиты из истории изменений?

  71. Что означает слово “достижимые коммиты”?

  72. Как исключить из вывода git log коммиты, следующие после заданного?

  73. Как отобразить только диапазон коммитов?

  74. Как отобразить только последние 5 коммитов из ветки main?

  75. Как фильтровать коммиты по времени их создания?

  76. Как фильтровать коммиты по имени автора?

  77. Как отобразить коммиты, которые затрагивают только выбранный файл?

  78. Как вывести те коммиты, которые в сообщении содержат заданную ключевую фразу?

  79. Как вывести те коммиты, которые в изменениях содержат заданную ключевую фразу?

Упражнения#

  1. Выясните версию установленного Git.

  2. Склонируйте хранилище json из сервера github.com у пользователя nlohmann по протоколу http.

  3. Склонируйте локальное хранилище в соседний каталог. Адрес локального хранилища совпадает с путевым именем рабочего каталога.

  4. Сравните скорость загрузки одного и того же хранилища с полной и неполной историей.

  5. Покажите пример файла .gitignore для языка программирования C++ от разработчиков GitHub. Объясните его содержимое.

  6. Отобразите на экране справочную страницу команды git help.

  7. Продемонстрируйте работу команды git rm на зафиксированном, индексированном и измененном файлах.

  8. Найдите наименьшее количество цифр в идентификаторе коммита, которые позволяет однозначно сослаться на коммит.

  9. Выведите на экран только один коммит с заданным идентификатором.

  10. Повторите вывод git log --oneline, опцией --pretty с собственным форматом. Опции для управления цветом символов описаны в справочной странице к git log в разделе PRETTY FORMATS.

  11. Отобразите всех авторов, редактировавших файлы CMake (файлы CMakeLists.txt и с расширением .cmake) за последний год.

  12. Отобразите всех авторов, работавших с файлами из выбранного подкаталога за последние 3 месяца.

  13. Определите по истории из хранилища дату и время первого коммита в выбранному году.

  14. Выведите самый первый коммит.

  15. Посчитай количество коммитов в хранилище.

  16. Посчитайте количество удаленных и добавленных строк автором. git log --oneline --shortstat --no-merges --author="David Cole" | awk 'getline' | awk '{ print $4 }' | paste -sd+ | bc

  17. Оформите хранилище с проектом из не менее трех файлов и линейной историей из не менее 5 коммитов. Содержимое файлов и коммитов должно быть осмысленным.