День 4 | Знакомимся с системой контроля версий
70 минЧто такое Git и зачем он нужен?
Представьте ситуацию: вы работаете над сайтом, всё идёт хорошо. Потом вы решили попробовать что-то новое, изменили код, и... что-то сломалось. Как вернуться к рабочей версии? Или вы работаете в команде — как не перезаписать изменения друг друга?
Вот для этого и нужен Git — система контроля версий. Это как "машина времени" для вашего кода. Git сохраняет все изменения, и вы можете в любой момент вернуться к любой версии.
Что такое система контроля версий?
Система контроля версий (Version Control System, VCS) — это программа, которая отслеживает все изменения в файлах проекта. Она запоминает:
- Что было изменено
- Когда было изменено
- Кто внёс изменения
- Почему было изменено (если вы оставили комментарий)
Git — самая популярная система контроля версий в мире. Её используют практически все разработчики.
Что такое GitHub?
GitHub — это веб-сервис, который хранит ваши Git-репозитории в интернете. Это как "облако" для кода. Преимущества:
- Ваш код всегда сохранён в интернете (не потеряется, если сломается компьютер)
- Можно работать над проектом с разных компьютеров
- Легко делиться кодом с другими
- Можно работать в команде
- Можно показать свой код работодателю (портфолио)
Установка Git
Теперь давайте установим Git на ваш компьютер. Процесс немного отличается для разных операционных систем.
Windows
- Откройте браузер и перейдите на сайт: https://git-scm.com/download/win
- Скачайте установщик (Git автоматически определит вашу систему и предложит правильную версию)
- Запустите скачанный файл (например,
Git-2.xx.x-64-bit.exe) - Следуйте инструкциям установщика. Можно оставить все настройки по умолчанию — они подходят для большинства случаев
- После установки откройте программу "Git Bash" (она появится в меню Пуск) или используйте обычную командную строку (cmd)
Mac
На Mac есть два способа установки Git:
Способ 1: Через официальный сайт (проще для начинающих)
- Откройте браузер и перейдите на: https://git-scm.com/download/mac
- Скачайте установщик для Mac
- Откройте скачанный файл и следуйте инструкциям
Способ 2: Через Homebrew (для более продвинутых пользователей)
Что такое Homebrew? Homebrew (или просто "brew") — это менеджер пакетов для Mac. Простыми словами, это программа, которая помогает легко устанавливать другие программы через командную строку.
Как установить Homebrew?
- Откройте программу "Терминал" (Terminal) на Mac. Найти её можно через Spotlight (нажмите Cmd+Пробел и введите "Terminal")
- Скопируйте и вставьте в терминал следующую команду (нажмите Enter после вставки):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Эта команда скачает и установит Homebrew. Процесс может занять несколько минут. Вас могут попросить ввести пароль администратора — это нормально.
Что делает эта команда?
/bin/bash -c— запускает команду в bash (оболочка терминала)curl -fsSL— скачивает скрипт установки с интернетаcurl— программа для скачивания файлов из интернета-f— fail silently (не показывать ошибки)-s— silent (тихий режим, без прогресс-бара)-S— show errors (но показывать ошибки)-L— follow redirects (следовать перенаправлениям)
- URL — адрес скрипта установки Homebrew на GitHub
После установки Homebrew установите Git:
brew install git
Эта команда скачает и установит Git через Homebrew.
Linux (Ubuntu/Debian)
Откройте терминал и выполните команду:
sudo apt-get update
sudo apt-get install git
sudo означает, что команда выполняется с правами администратора. Вас попросят ввести пароль.
Что делают эти команды?
sudo apt-get update— обновляет список доступных пакетов (программ)sudo apt-get install git— устанавливает Git
Проверка установки
После установки нужно проверить, что Git установлен правильно. Откройте терминал (или Git Bash на Windows) и выполните команду:
git --version
Если Git установлен, вы увидите что-то вроде: git version 2.39.0
Если вы видите ошибку "command not found" или "команда не найдена", значит:
- Git не установлен — попробуйте переустановить
- Git не добавлен в PATH (путь системы) — на Windows перезапустите терминал или переустановите Git
- Вы используете неправильный терминал — на Windows используйте Git Bash
Первая настройка Git
После установки Git нужно его настроить — указать ваше имя и email. Это нужно, чтобы Git знал, кто вносит изменения.
Откройте терминал и выполните две команды (замените на свои данные):
git config --global user.name "Ваше Имя"
git config --global user.email "your.email@example.com"
Что означают эти команды?
git config— команда для настройки Git--global— означает, что настройка применяется ко всем вашим проектам на этом компьютере (если хотите настроить только для одного проекта, уберите--global)user.name— ваше имя (может быть любым, но лучше использовать настоящее)user.email— ваш email (лучше использовать тот, который вы будете использовать для GitHub)
Проверить настройки можно командой:
git config --list
Вы увидите список всех настроек Git, включая только что установленные.
Основные команды Git
Теперь давайте изучим основные команды Git. Не пугайтесь — их не так много, и мы разберём каждую подробно.
1. Инициализация репозитория
Репозиторий (или "repo") — это папка, в которой Git отслеживает изменения. Чтобы Git начал отслеживать вашу папку, нужно её инициализировать.
Откройте терминал, перейдите в папку с вашим проектом и выполните:
cd путь/к/вашей/папке
git init
Что делает git init? Эта команда создаёт скрытую папку .git в вашей папке проекта. В этой папке Git хранит всю информацию об изменениях. Вы её обычно не видите (она скрытая), но она там есть.
Как перейти в папку через терминал?
- Windows:
cd C:\Users\ВашеИмя\Documents\my-website - Mac/Linux:
cd ~/Documents/my-website - Или просто перетащите папку в окно терминала — путь вставится автоматически (на Mac)
Полезные команды для навигации:
pwd(Mac/Linux) илиcd(Windows) — показать текущую папкуls(Mac/Linux) илиdir(Windows) — показать содержимое папкиcd ..— перейти на уровень вышеcd ~(Mac/Linux) — перейти в домашнюю папку
2. Проверка статуса
Команда git status показывает текущее состояние вашего репозитория:
git status
Она покажет:
- Какие файлы изменены, но ещё не добавлены в Git
- Какие файлы добавлены и готовы к сохранению
- Какие файлы не отслеживаются Git
Эта команда очень полезна — используйте её часто, чтобы понимать, что происходит с вашим проектом.
3. Добавление файлов
Git не отслеживает файлы автоматически. Нужно явно сказать ему, какие файлы вы хотите сохранить. Это делается командой git add.
Добавить конкретный файл:
git add index.html
Добавить все файлы в папке:
git add .
Точка (.) означает "текущая папка и все её содержимое".
Добавить все HTML файлы:
git add *.html
Звёздочка (*) означает "любые символы", так что *.html — это "все файлы с расширением .html".
Что происходит при git add? Файлы попадают в так называемую "staging area" (область подготовки). Это как корзина покупок — вы выбираете, что хотите сохранить, но ещё не сохранили.
4. Создание коммита
Коммит (commit) — это "снимок" вашего проекта в определённый момент времени. Это как сохранение в игре, только для кода. Коммит сохраняет все изменения, которые вы добавили через git add.
Создать коммит:
git commit -m "Добавлена базовая структура HTML"
-m означает "message" (сообщение). Сообщение должно описывать, что вы изменили. Хорошие сообщения: "Добавлена шапка сайта", "Исправлена ошибка в меню", "Добавлены стили для кнопок".
Создать коммит с подробным описанием:
git commit -m "Добавлена базовая структура HTML" -m "Создан header, main и footer с семантическими тегами"
Можно указать несколько сообщений через несколько -m.
Важно: Коммит сохраняет только те файлы, которые вы добавили через git add. Если вы изменили файл, но не добавили его, изменения не попадут в коммит.
5. Просмотр истории
Посмотреть все коммиты можно командой:
git log
Вы увидите список всех коммитов с автором, датой и сообщением.
Краткий вид:
git log --oneline
Показывает только короткие хеши и сообщения.
С графом веток:
git log --oneline --graph
Показывает визуальный граф коммитов (полезно, когда работаете с ветками).
Работа с GitHub
Теперь давайте научимся работать с GitHub — хранилищем кода в интернете.
Регистрация на GitHub
- Откройте браузер и перейдите на github.com
- Нажмите кнопку "Sign up" (Зарегистрироваться)
- Заполните форму: username (имя пользователя), email, пароль
- Подтвердите email (проверьте почту)
Важно: Username будет виден всем, выбирайте его внимательно. Это будет частью URL ваших репозиториев (например, github.com/ваш-username).
Создание репозитория на GitHub
- После входа нажмите кнопку "+" в правом верхнем углу
- Выберите "New repository"
- Укажите название (например, "my-first-website")
- Выберите "Public" (публичный) или "Private" (приватный):
- Public — все могут видеть ваш код (хорошо для портфолио)
- Private — только вы можете видеть код
- Важно: НЕ ставьте галочки на "Add a README file", "Add .gitignore", "Choose a license" — если ваш репозиторий уже создан локально
- Нажмите "Create repository"
Подключение локального репозитория к GitHub
После создания репозитория на GitHub, вы увидите инструкции. Но давайте разберём пошагово:
- GitHub покажет вам URL репозитория. Он будет выглядеть так:
https://github.com/ваш-username/my-first-website.git - В терминале (убедитесь, что вы в папке вашего проекта) выполните команды, которые покажет GitHub. Обычно это:
git remote add origin https://github.com/ваш-username/my-first-website.git
git branch -M main
git push -u origin main
Что делают эти команды?
git remote add origin— добавляет удалённый репозиторий (GitHub) с именем "origin"remote— удалённый репозиторий (в интернете)origin— стандартное имя для основного удалённого репозитория
git branch -M main— переименовывает текущую ветку в "main" (современный стандарт, раньше использовали "master")git push -u origin main— отправляет ваш код на GitHubpush— отправить изменения на удалённый репозиторий-u— установить связь, чтобы в будущем можно было просто писатьgit pushorigin main— отправить ветку main на origin (GitHub)
Вас могут попросить ввести логин и пароль GitHub. Если у вас включена двухфакторная аутентификация, нужно будет создать Personal Access Token вместо пароля.
Клонирование репозитория
Если вы хотите скопировать репозиторий с GitHub на свой компьютер:
git clone https://github.com/username/repository-name.git
Эта команда создаст папку с названием репозитория и скопирует туда весь код.
Основной workflow (процесс работы)
Теперь, когда вы знаете основные команды, вот типичный процесс работы с Git:
- Проверить статус:
git status— посмотреть, что изменилось - Добавить изменения:
git add .— добавить все изменённые файлы - Создать коммит:
git commit -m "Описание изменений"— сохранить изменения - Отправить на GitHub:
git push— загрузить изменения в интернет - Если работаете в команде:
git pull— получить изменения от других
Этот цикл повторяется каждый раз, когда вы делаете изменения в коде.
Ветки (Branches)
Ветки — это одна из самых мощных возможностей Git. Ветка позволяет работать над новой функцией, не затрагивая основной код.
Зачем нужны ветки?
- Вы можете экспериментировать, не боясь сломать рабочий код
- Несколько разработчиков могут работать над разными задачами одновременно
- Легко откатиться, если что-то пошло не так
Основные команды для работы с ветками
# Посмотреть все ветки (* отмечает текущую)
git branch
# Создать новую ветку
git branch feature-header
# Переключиться на ветку
git checkout feature-header
# Создать ветку и сразу переключиться на неё (короткая запись)
git checkout -b feature-header
# Переключиться обратно на main
git checkout main
# Слить ветку feature-header в текущую (main)
git merge feature-header
# Удалить ветку (после слияния)
git branch -d feature-header
Типичный workflow с ветками
- Вы на ветке
mainс рабочим кодом - Создаёте ветку для новой функции:
git checkout -b feature-slider - Работаете, делаете коммиты в эту ветку
- Когда функция готова — переключаетесь на main:
git checkout main - Сливаете изменения:
git merge feature-slider - Удаляете ветку:
git branch -d feature-slider
Совет: Называйте ветки осмысленно: feature-slider, fix-header-bug, redesign-footer.
Файл .gitignore
.gitignore — это специальный файл, который говорит Git, какие файлы и папки НЕ нужно отслеживать. Это очень важно!
Что обычно добавляют в .gitignore?
node_modules/— папка с зависимостями npm (очень большая, все могут скачать её через npm install)dist/илиbuild/— скомпилированные файлы (можно пересобрать).env— файл с секретными настройками (пароли, API ключи).DS_Store— системный файл MacThumbs.db— системный файл Windows
Как создать .gitignore
Создайте файл .gitignore в корне проекта (да, имя начинается с точки!):
# Зависимости
node_modules/
# Сборка
dist/
build/
# Секреты и настройки окружения
.env
.env.local
# Логи
*.log
npm-debug.log*
# Системные файлы
.DS_Store
Thumbs.db
# IDE настройки (опционально)
.idea/
.vscode/
Важно:
- Добавляйте .gitignore ПЕРЕД первым коммитом
- Если файл уже отслеживается Git, добавление в .gitignore не уберёт его. Нужно сначала удалить из Git:
git rm --cached filename - Строки, начинающиеся с
#— это комментарии /в конце означает папку (например,node_modules/)*— любые символы (например,*.log— все файлы с расширением .log)
Готовые шаблоны .gitignore
GitHub предлагает готовые шаблоны для разных проектов:
- github.com/github/gitignore — коллекция шаблонов
- При создании репозитория на GitHub можно выбрать готовый шаблон
Практическое задание
- Установите Git на свой компьютер (следуйте инструкциям выше для вашей операционной системы)
- Проверьте установку:
git --version - Настройте Git: укажите имя и email
- Создайте папку для проекта (например, "my-first-website")
- Создайте в ней файл
index.htmlс базовой структурой HTML - Создайте файл .gitignore с базовым содержимым (node_modules/, .DS_Store, и т.д.)
- Инициализируйте Git в этой папке:
git init - Добавьте файлы:
git add . - Создайте первый коммит:
git commit -m "Первый коммит" - Зарегистрируйтесь на GitHub
- Создайте новый репозиторий на GitHub
- Подключите локальный репозиторий к GitHub (используйте команды, которые покажет GitHub)
- Отправьте код на GitHub:
git push -u origin main - Проверьте на GitHub — ваш код должен там появиться!
- Попрактикуйтесь с ветками:
- Создайте ветку:
git checkout -b feature-test - Измените что-нибудь в index.html, сделайте коммит
- Вернитесь на main:
git checkout main - Слейте изменения:
git merge feature-test
- Создайте ветку:
Полезные команды
Вот ещё несколько полезных команд, которые могут пригодиться:
# Посмотреть изменения в файле (до добавления в staging)
git diff
# Отменить изменения в файле (вернуть к последнему коммиту)
git checkout -- filename
# Удалить файл из Git (но оставить на диске)
git rm --cached filename
# Просмотреть информацию об удалённом репозитории
git remote -v
# Посмотреть все ветки
git branch
Что дальше?
Отлично! Теперь вы умеете работать с Git и GitHub. Это очень важный навык для любого разработчика. В следующем уроке мы установим Node.js и npm — инструменты, которые понадобятся для работы с современными инструментами разработки.