GIT Quiz- практикум по использованию git, для начинающих

в 3:42, , рубрики: Git, метки:

Я сам переходил с SVN на GIT несколько лет назад и переводил других разработчиков. За это время у меня сформировалось понимание, что теория, книжка, google/stackoverflow — это хорошо, но есть нюанс.

“Чем отличается теория от практики? В теории — ничем! На практике все немного не так.”

  • Читать что “ветки — это круто” — это одно, а вот перестать бояться делать ветки — другое;
  • Иметь возможность делать локальные коммиты — это одно, а делать их в реальности — совсем другое;
  • Кто-то знает как использовать в теории, но на практике не делал и поэтому и не использует;
  • Кто-то просто не знает, а чего не знаешь, то и не используешь.

Именно по этому, я написал Git Quiz для своих коллег — чтобы люди привыкли использовать git, как git, а не как svn; чтобы у разработчиков сформировалась мышечная память, чтобы теория стала практикой.

Особенность quiz в том, что это не учебник, не тест с вариантами ответа или без них. GIT Quiz — это мини лабораторная работа. Время прохождения теста 15-45 минут.

Всего 19 последовательных шагов. У каждого шага есть:

  1. Описание что нужно сделать по задаче;
  2. Версия репозитория до шага;
  3. Версия репозитория после шага;
  4. Скриншот после выполнения шага;
  5. Видео — как сделать задачу.

Сами задачки — это пошаговое выполнение разработки по gitflow с использование git.
Ссылка на проект в github

Если не нужно видео, можно взять первый commit, он на 40мб меньше.

Все действия предполагается выполнять в локальном репозитории, без наличия сервера (push-pull). Причины простые:

  • Так проще для начала (не нужно настраивать сервер);
  • Этого достаточно, чтобы начать работать с git;
  • Quiz будет продолжен и расширен серверными шагами.
Так выглядит весь список задач:

GIT Quiz  практикум по использованию git, для начинающих
Пример задачи

Шаг 4

Структура в файловой системе

GIT Quiz  практикум по использованию git, для начинающих

Текст задачи

GIT Quiz  практикум по использованию git, для начинающих

Репозитарий до выполнения задания

GIT Quiz  практикум по использованию git, для начинающих

Репозитарий после выполнения задания

GIT Quiz  практикум по использованию git, для начинающих

Видео- как сделать в gitextensions

GIT Quiz  практикум по использованию git, для начинающих
Результат тестирования на коллегах:

  • Я тест прошел за 15 минут. У меня 1.5 года опыта работы с git + тест я же и создал.
  • Коллега, который всю жизнь писал на svn и последний месяц потихоньку работал с git (использовал git как svn-> commit/push одной кнопкой). Ему потребовалось 45 минут. После прохождения он стал увереннее пользоваться git.
  • Второй коллега, который всю жизнь работал с svn, и 1 день разбирался «что такое git» сказала, «классный тест, стало понятнее. Нужно еще работа с сервером правда.»
Вопросы:

  • Почему я не стал работать из консоли? Ну, во-первых, я сам ей редко пользуюсь, во-вторых, в UI нагляднее.
  • Почему я работал через gitextensions? Tortoise git мне не нравится по субъективным причинам. Smartgit — штука хорошая, но тащит за собой java + для коммерческого использования платная. Клиент из Visual Studio — это сразу привязка к Microsoft. Другими клиентами не довелось пользоваться.
  • Почему без звука — в следующей версии, если окажется полезным добавлю описание того, что я делаю.

Буду рад фидбеку, если кто-то готов дополнить примеры и записать видео, то буду вдвойне счастлив.

P.S.
Также я взялся за продвинутую версию quiz — какие-то маленькие моменты, решение проблем(рука дрогнула не на то сделал rebase, откатывание rebase, сжимание нескольких комитов в один.). Но эта часть только в стадии формирования.

P.S.S.
Часть по работе с сервером, тоже пока в стадии формирования. Тут есть момент, что людей много может быть, и создать вот так же просто папку с примерами на флешке не получится. Из разных шагов не последовательно на сервер не сделаешь push/pull/fetch. Если мысли на тему сделать все в виде виртуалки и выдавать ее всем, но там начинаются свои проблемы.

Автор: SychevIgor

Источник

Поделиться

* - обязательные к заполнению поля