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:20 | style.css | Добавить стили |
| Алекс Иванов | 3 ноября, 15:05 | index.html | Добавить раздел «Мои проекты» |
| Мария Петрова | 4 ноября, 10:12 | index.html | Исправить опечатку в заголовке |
Git создал Линус Торвальдс в 2005 году для работы над ядром Linux. Полная история лежит у вас на компьютере, поэтому Git работает без интернета.
Git и GitHub — не одно и то же
Новички часто путают Git и GitHub. Представьте фотоальбом у вас дома: вы вклеиваете снимки (версии) и листаете их в любой момент. Это Git. А теперь представьте сайт-галерею, куда можно выложить копию альбома, показать его другим и вместе над ним работать. Это GitHub.
| Git | GitHub | |
|---|---|---|
| Что это | Программа на вашем компьютере | Сайт в интернете |
| Что делает | Ведёт историю изменений проекта | Хранит проекты в интернете и помогает работать командой |
| Нужен интернет | Нет | Да |
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 |
Как устроен курс
Каждый урок построен одинаково:
- Теория. Простыми словами, затем официальный термин, затем команда с разбором.
- Практика у себя. Шаги, которые вы повторяете в своём терминале, и описание результата.
- Проверьте себя. Список: что у вас теперь должно получиться.
- Тест. Несколько вопросов в конце урока.
Задач с автопроверкой кода в этом курсе нет: Git живёт на вашем компьютере, и результат вы проверяете сами по тому, что выводит терминал. Если что-то не получается или непонятно — спросите ИИ-помощника прямо в уроке. Заранее знать ничего не нужно.
Частые ошибки
Это не ошибки в коде, а типичные заблуждения. Проверьте, нет ли их у вас.
- «Git и GitHub — одно и то же». Нет: Git — программа на вашем компьютере, GitHub — сайт, куда можно выложить проект. Git работает и без GitHub.
- «Git нужен только программистам в больших командах». Он полезен и в одиночку: откат ошибок и история изменений нужны любому проекту, даже сайту-визитке.
- «Git хранит только последнюю версию». Наоборот: Git хранит всю историю, и вы можете вернуться к любому сохранённому состоянию.
Что важно запомнить
- Git — система контроля версий: программа, которая ведёт историю изменений проекта.
- Сохранённое состояние проекта в Git называется коммитом; у каждого коммита есть автор, время и пояснение.
- Git работает на вашем компьютере и не требует интернета; GitHub — отдельный сайт для хранения проектов и командной работы.
- За курс вы построите сайт-визитку и опубликуете его на GitHub.
Чтобы всё это попробовать на практике, Git нужно поставить на компьютер. Этим и займёмся в следующем уроке.
Проверьте себя
- Объясните своими словами, чем Git отличается от GitHub.
- Вспомните свой файл вида «..._финал_2»: что про него вы не смогли бы ответить (кто менял, когда, зачем)?
- Решите, где будете применять Git в первую очередь.