О курсе
Этот курс — комплексное введение в Git, самую популярную распределенную систему контроля версий. Программа рассчитана на новичков и проведет вас от базовых концепций до уверенной работы с удаленными репозиториями на платформе GitHub. По окончании курса вы сможете управлять историей своих проектов, эффективно работать над кодом в одиночку и быть готовым к командной разработке.
Целевая аудитория
Начинающие разработчики, студенты IT-специальностей, дизайнеры и тестировщики
Формат
8 разделов, лекции с теорией и практические задания
Итог
Навыки работы с Git и GitHub, готовность к командной разработке
В этом разделе мы разберемся, что такое системы контроля версий (VCS) и почему они стали незаменимым инструментом для любого разработчика. Вы поймете ключевое отличие распределенных систем (как Git) от централизованных и осознаете, какие проблемы решает Git в повседневной работе.
Ключевые темы
- Что такое система контроля версий (VCS)?
- Зачем нужен Git: история изменений, совместная работа, эксперименты
- Централизованные (SVN) vs. Распределенные (Git) системы
- Основные понятия: репозиторий, коммит, рабочий каталог
- Реальные примеры использования Git в проектах
Практическая работа: Анализ преимуществ систем контроля версий на конкретных примерах. Понимание места и роли Git в современной разработке.
Мы перейдем от теории к практике. Вы установите Git на свой компьютер, выполните первоначальную настройку, чтобы система знала, кто вы, и создадите свой первый локальный репозиторий. Этот раздел закладывает фундамент для всей дальнейшей работы.
Ключевые темы
- Установка Git для Windows, macOS, Linux
- Первоначальная настройка: git config (имя пользователя, email)
- Инициализация репозитория: команда git init
- Проверка состояния репозитория: команда git status
- Структура Git-репозитория и скрытая папка .git
Практическая работа: Установить и настроить Git на своем компьютере. Создать новый Git-репозиторий в любой папке и проверить его статус.
Это сердце ежедневной работы с Git. Вы изучите основной цикл "изменил → добавил в индекс → сохранил (сделал коммит)". Мы также обсудим, как писать информативные сообщения к коммитам, чтобы история проекта была понятной и полезной.
Ключевые темы
- Понятие коммита как "снимка" проекта
- Область индексирования (Staging Area) и ее назначение
- Команда git add: добавление файлов в индекс
- Команда git commit: создание коммита с сообщением
- Правила хорошего тона в написании сообщений коммитов
- Отмена изменений и работа с git restore
Практическая работа: Создание нескольких файлов в репозитории, их индексация и создание осмысленных коммитов с правильно оформленными сообщениями.
Git хранит всю историю проекта, и важно уметь ею пользоваться. В этом разделе вы научитесь просматривать список всех коммитов, анализировать, что именно изменилось в каждом из них, и сравнивать разные версии файлов.
Ключевые темы
- Просмотр журнала коммитов: git log и его полезные флаги (--oneline, --graph)
- Просмотр различий между версиями: git diff
- Сравнение рабочего каталога, индекса и коммитов
- Детальная информация о конкретном коммите: git show
- Навигация по истории с помощью хешей коммитов
Практическая работа: Анализ истории созданного репозитория, поиск конкретных изменений, использование различных флагов git log для форматирования вывода.
Ветки — одна из самых мощных функций Git. Вы узнаете, как создавать параллельные линии разработки для новых функций или исправлений, не затрагивая стабильный основной код. Это позволяет безопасно экспериментировать и структурировать работу.
Ключевые темы
- Что такое ветка и зачем она нужна
- Указатель HEAD и его назначение
- Создание новой ветки: git branch
- Переключение между ветками: git checkout и git switch
- Создание и переключение в одну команду: git checkout -b
- Просмотр списка веток и текущей ветки
Практическая работа: Создание нескольких веток для разных функций проекта, переключение между ними, внесение изменений в каждую ветку независимо.
После того как работа в отдельной ветке завершена, ее изменения нужно внести в основную ветку. Вы научитесь выполнять слияние (merge) веток, объединяя таким образом результаты своей работы с основной линией разработки.
Ключевые темы
- Концепция слияния (merge)
- Простое слияние (fast-forward)
- Выполнение слияния: git merge
- Удаление ненужных веток: git branch -d
- Базовое понимание конфликтов слияния
- Стратегии разрешения конфликтов
Практическая работа: Слияние созданных веток в основную ветку main, обработка простых конфликтов слияния, очистка устаревших веток.
Git раскрывает всю свою мощь при работе с удаленными репозиториями. Мы научимся связывать локальный проект с GitHub, публиковать (push) свои изменения на сервер и загружать (pull) изменения других разработчиков. Это основа для командной работы.
Ключевые темы
- Что такое удаленный репозиторий (Remote)?
- Регистрация и создание репозитория на GitHub
- Связывание локального и удаленного репозиториев: git remote add
- Отправка изменений на сервер: git push
- Клонирование (копирование) удаленного репозитория: git clone
- Загрузка изменений с сервера: git pull и git fetch
- Работа с несколькими удаленными репозиториями
Практическая работа: Создание репозитория на GitHub, публикация локального проекта, клонирование чужого репозитория, синхронизация изменений между локальным и удаленным репозиториями.
В финальном разделе мы соберем все изученные команды в единый профессиональный рабочий процесс (workflow). Вы узнаете о концепции Pull Request на GitHub, познакомитесь с файлом .gitignore и получите карту дальнейшего развития своих навыков в Git.
Ключевые темы
- Классический Git Flow: работа с ветками, push, pull request
- Назначение и синтаксис файла .gitignore
- Краткое введение в разрешение конфликтов слияния
- Обзор продвинутых команд: git stash, git rebase
- Лучшие практики работы с Git в команде
- Графические клиенты для Git
Практическая работа: Создание .gitignore файла для проекта, выполнение полного цикла работы от создания ветки до Pull Request, применение всех изученных команд в едином workflow.
Итоговый проект
Тема: "Создание и публикация персонального портфолио на GitHub"
Задание: Создать локальный репозиторий для простого сайта-портфолио (HTML/CSS). Используя ветки, разработать разные разделы сайта (например, about-me, my-projects, contacts). Слить все ветки в основную (main), настроить .gitignore для игнорирования временных файлов, и опубликовать готовый проект на GitHub, сделав его публичным.
Что дальше? Рекомендации по изучению продвинутых тем: разрешение конфликтов, интерактивный rebase, работа с хуками и изучение графических клиентов для Git.
Вернуться на главную