$ sudo teach IT
Модуль 1 · Знакомство · Урок 1.1

Что такое Git

Вы поймёте, зачем нужен Git, чем он отличается от GitHub и что вы построите за курс.

Обзор~10 минутНовичокGitGitHub

Git — это система контроля версий: программа, которая запоминает каждое сохранённое состояние вашего проекта и позволяет вернуться к любому из них. Из урока вы узнаете, зачем Git нужен, чем он отличается от GitHub и что вы построите за курс.

Если вы хоть раз хранили файлы с именами вида сайт_финал_2_точно_финал.html, вы уже знаете проблему, которую решает Git.

Что такое Git простыми словами

Вспомните компьютерную игру с сохранениями. Перед трудным боссом вы нажимаете «сохранить», и если бой пошёл плохо — загружаете сохранение и пробуете снова. Git делает то же самое для папки с проектом: вы говорите «запомни, как всё выглядит сейчас», а потом можете вернуться к любому такому моменту.

Без Git люди делают сохранения вручную — копируют файлы и дописывают к имени слова:

Терминал
$ ls
сайт.html
сайт_финал.html
сайт_финал_2.html
сайт_финал_2_точно_финал.html
сайт_финал_2_точно_финал_исправил.html

Через неделю никто не помнит, какой файл настоящий и что в нём менялось. Git заменяет эту кучу одним файлом и историей: файл всегда один, а история помнит каждое сохранённое состояние.

Официальный термин

Такая программа называется системой контроля версий (англ. version control system, VCS): она ведёт историю изменений файлов. Одно сохранённое состояние в Git называется коммитом (англ. commit) — это снимок всех файлов проекта в выбранный момент, к которому вы пишете короткое пояснение. Свой первый коммит вы сделаете совсем скоро, а пока достаточно запомнить: коммит — это «сохранение с подписью».

История отвечает на четыре вопроса про каждое изменение: кто, когда, что и зачем. Так, по смыслу, выглядит история маленького сайта:

КтоКогдаЧто изменилЗачем (пояснение)
Алекс Иванов3 ноября, 14:20style.cssДобавить стили
Алекс Иванов3 ноября, 15:05index.htmlДобавить раздел «Мои проекты»
Мария Петрова4 ноября, 10:12index.htmlИсправить опечатку в заголовке

Git создал Линус Торвальдс в 2005 году для работы над ядром Linux. Полная история лежит у вас на компьютере, поэтому Git работает без интернета.

Git и GitHub — не одно и то же

Новички часто путают Git и GitHub. Представьте фотоальбом у вас дома: вы вклеиваете снимки (версии) и листаете их в любой момент. Это Git. А теперь представьте сайт-галерею, куда можно выложить копию альбома, показать его другим и вместе над ним работать. Это GitHub.

GitGitHub
Что этоПрограмма на вашем компьютереСайт в интернете
Что делаетВедёт историю изменений проектаХранит проекты в интернете и помогает работать командой
Нужен интернетНетДа

GitHub — не единственный такой сервис. Есть GitLab и Bitbucket, а также российские GitVerse и GitFlic. Команды Git везде одни и те же, поэтому всё, что вы выучите, пригодится на любой площадке. В курсе мы работаем с GitHub — это самый известный сервис, а его бесплатного тарифа хватит на весь курс.

Зачем Git новичку

Даже если вы пишете код один, Git даёт четыре вещи:

  • Откат ошибок. Сломали сайт — вернули рабочую версию за минуту, а не вспоминали, что вы там меняли.
  • Смелые эксперименты. Новую идею пробуют отдельно от рабочей версии, а если не вышло — выбрасывают, ничего не испортив.
  • Портфолио. Профиль на GitHub — это витрина: работодатель видит ваш настоящий код и то, как вы над ним работали, а не только строчку в резюме.
  • Работа в команде. Git ждут в вакансиях разработчиков: без него невозможно вдвоём править один проект и не затирать друг другу работу.

Git пригодится везде, где есть код. Например, учебные проекты из курсов школы по Python, JavaScript и HTML и CSS удобно сразу вести в Git.

Что мы построим

За курс вы ведёте в Git один небольшой проект — личный сайт-визитку «Визитка». Готовый код мы дадим, знать HTML не нужно. К концу курса у вас будет публичный проект на GitHub, сайт в интернете по адресу вида https://ваш-логин.github.io/portfolio/, свои pull request (предложения изменений) и выпущенная версия проекта.

МодульЧему научитесьЧто появится в проекте
1. ЗнакомствоУстановить Git, освоить терминал, настроить GitПапка проекта
2. Первые коммитыСоздавать репозиторий, делать коммиты, читать историюПервые пять коммитов
3. Отмена и .gitignoreОтменять ошибки, не пускать в Git лишние файлыФайл .gitignore
4. ВеткиПробовать новое отдельно, сливать и решать конфликтыСтраница проектов и подвал сайта
5. GitHubВыложить проект в интернет, настроить вход, опубликовать сайтСайт по ссылке
6. Работа в командеPull request, ревью, issues, чужие проектыИзменения через pull request
7. Чистая историяRebase, поиск по истории, теги и релизыТёмная тема и версия v1.0.0
8. ФиналПройти весь цикл самостоятельноНовый раздел сайта и профиль GitHub

Как устроен курс

Каждый урок построен одинаково:

  1. Теория. Простыми словами, затем официальный термин, затем команда с разбором.
  2. Практика у себя. Шаги, которые вы повторяете в своём терминале, и описание результата.
  3. Проверьте себя. Список: что у вас теперь должно получиться.
  4. Тест. Несколько вопросов в конце урока.

Задач с автопроверкой кода в этом курсе нет: Git живёт на вашем компьютере, и результат вы проверяете сами по тому, что выводит терминал. Если что-то не получается или непонятно — спросите ИИ-помощника прямо в уроке. Заранее знать ничего не нужно.

Частые ошибки

Это не ошибки в коде, а типичные заблуждения. Проверьте, нет ли их у вас.

  • «Git и GitHub — одно и то же». Нет: Git — программа на вашем компьютере, GitHub — сайт, куда можно выложить проект. Git работает и без GitHub.
  • «Git нужен только программистам в больших командах». Он полезен и в одиночку: откат ошибок и история изменений нужны любому проекту, даже сайту-визитке.
  • «Git хранит только последнюю версию». Наоборот: Git хранит всю историю, и вы можете вернуться к любому сохранённому состоянию.

Что важно запомнить

  • Git — система контроля версий: программа, которая ведёт историю изменений проекта.
  • Сохранённое состояние проекта в Git называется коммитом; у каждого коммита есть автор, время и пояснение.
  • Git работает на вашем компьютере и не требует интернета; GitHub — отдельный сайт для хранения проектов и командной работы.
  • За курс вы построите сайт-визитку и опубликуете его на GitHub.

Чтобы всё это попробовать на практике, Git нужно поставить на компьютер. Этим и займёмся в следующем уроке.

Проверьте себя

  • Объясните своими словами, чем Git отличается от GitHub.
  • Вспомните свой файл вида «..._финал_2»: что про него вы не смогли бы ответить (кто менял, когда, зачем)?
  • Решите, где будете применять Git в первую очередь.
На следующий урок