JavaRush /Курсы /C# SELF /Основы Git и GitHub

Основы Git и GitHub

C# SELF
26 уровень , 0 лекция
Открыта

1. Введение

Представьте, что вы пишете курсовую работу. Вы начали работу над ней, сохранили документ. Потом добавили в него что-то, перечитали; не понравилось — удалили, добавили новое, сохранили как "курсовая-черновик.docx". Через день вы внесли кучу правок, а научный руководитель говорит: "Слушай, предыдущий вариант был лучше. Вернись к нему". И вот вы сидите, пытаясь вспомнить, что именно вы там поменяли. А может, у вас есть "курсовая-финал.docx", а потом еще "курсовая-финал-реально-финал.docx", и вы уже не помните, где какая версия? Знакомо?

В программировании эта проблема возводится в абсолют. Вы работаете над кодом, добавляете новую фичу, а потом понимаете, что она кривая и ломает всё, что работало до этого. Как откатиться назад — к моменту, когда все было хорошо? Или другой случай. Вы работаете над большим проектом не в одиночестве, а с командой. Как синхронизировать изменения, чтобы никто не перетер работу другого? Как понять, кто, когда и зачем добавил ту самую "гениальную" строчку кода, которая теперь вызывает ошибку в три часа ночи?

Если вы когда-нибудь сталкивались с подобными ситуациями, то уже интуитивно понимаете, зачем нужны системы контроля версий (Version Control Systems, VCS). Это своего рода машины времени для вашего кода. Они позволяют:

  • Сохранять версии: записывать "снимки" состояния вашего проекта в любой момент времени.
  • Откатываться назад: возвращаться к любой предыдущей версии проекта, если что-то пошло не так.
  • Сравнивать изменения: точно видеть, какие строчки кода были добавлены, удалены или изменены между разными версиями.
  • Работать в команде: несколько разработчиков могут одновременно работать над одним проектом, автоматически или полуавтоматически объединяя свои изменения.
  • Вести историю: записывать, кто, когда и зачем вносил те или иные изменения.

Одна из таких систем называется Git. И она завоевала мир.

Видео

Посмотрите лекцию от одного из ведущих менторов JavaRush Университета, который погрузит вас в мир Git — ключевой технологии для любого современного разработчика.

Видео состоит из двух частей:

  • Сначала вы разберете основы работы с Git через терминал. Этот фундаментальный подход поможет вам понять, что происходит «под капотом» системы.
  • Затем вы перейдете к практике в IntelliJ IDEA, где научитесь выполнять те же операции с помощью удобного графического интерфейса, как это ежедневно делают профессионалы.

Все практические примеры в видео демонстрируются на языке Java, однако принципы работы с Git и интерфейс IDE универсальны и применимы для любого языка, будь то C#, Kotlin или Rust.

Зеркало на Vimeo: Лекция 26 Git

2. Зачем разработчику нужен Git?

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

Основные понятия Git:

Репозиторий

Репозиторий (или "репо") — это место, где хранится вся история проекта, включая все изменения и версии файлов.

Коммиты

commit — это сохранённое состояние проекта. Каждый коммит в Git содержит информацию о том, какие изменения были внесены в проект, кем и когда. Коммиты образуют историю проекта и позволяют вернуться к любой предыдущей версии.

    gitGraph
    commit id: "1"
    commit id: "2"
    commit id: "3"
    commit id: "4"
    commit id: "5"
    commit id: "6"
    

Каждый коммит — это "снимок" проекта, который следует за предыдущим, формируя последовательную историю изменений.

Ветви

branch — это независимая линия разработки. По умолчанию Git создает ветку main. Вы можете создавать новые ветви для разработки новых фич или исправлений, а затем объединять их обратно в основную ветвь.

    gitGraph
    commit id: "1"
    commit id: "2"
    branch develop
    commit id: "3"
    commit id: "4"
    commit id: "5"
    checkout main
    commit id: "6"
    commit id: "7"
    merge develop
    commit id: "8"
    commit id: "9"
    

От основной ветки main "отпочковывается" ветка develop для параллельной разработки. После завершения работы изменения из develop сливаются обратно в main.

3. Основные команды Git (то, что под капотом)

Ниже — список основных команд для работы с Git через терминал. Важно понимать, какие команды лежат в основе всех операций. Однако мы будем придерживаться GUI-подхода и научимся выполнять все эти действия с помощью удобного графического интерфейса IntelliJ IDEA. Смотрите на эти команды как на то, что происходит "под капотом".

Команда Описание
git init Инициализирует новый Git-репозиторий в текущей директории.
git clone Клонирует репозиторий из URL в новую директорию.
git add Добавляет файлы в индекс для следующего коммита.
git commit Фиксирует подготовленные изменения в репозитории.
git push Отправляет изменения из локального репозитория в удалённый.
git pull Обновляет текущую ветку с последней версией из удалённого репозитория.
git branch Показывает, создаёт или удаляет ветки.
git merge Сливает изменения указанной ветки в текущую ветку.

Эти команды представляют основные инструменты работы в Git, позволяя управлять изменениями кода, ветками и слияниями в проектах любого размера.

        sequenceDiagram
        participant Рабочая директория
        participant Область индексации (Staging)
        participant Локальный репозиторий
        participant Удаленный репозиторий

        Рабочая директория ->> Область индексации (Staging): git add (Подготовить)
        Область индексации (Staging) ->> Локальный репозиторий: git commit (Сохранить локально)
        Локальный репозиторий ->> Удаленный репозиторий: git push (Отправить на сервер)
        Удаленный репозиторий ->> Рабочая директория: git pull (Скачать обновления)
      

4. Три места хранения кода

Когда вы будете пользоваться системой контроля версий для вашего кода, он, грубо говоря, будет храниться в трех местах:

1. Удаленный репозиторий

Это централизованное место для хранения вашего кода, обычно размещенное на таких сервисах как GitHub, GitLab или Bitbucket. Они обеспечивают централизованное хранение кода и являются основой для совместной работы. Удаленный репозиторий служит точкой интеграции для автоматизации процессов, таких как сборка, тестирование и развертывание приложений.

2. Локальный репозиторий

Локальный репозиторий — это ваша персональная копия кода, хранящаяся на вашем компьютере. В этом репозитории вы можете выполнять все операции с Git (коммиты, ветвления, слияния) без необходимости подключения к интернету.

3. Рабочая директория

Рабочая директория на вашем компьютере содержит актуальные файлы проекта, над которыми вы в данный момент работаете. Это место, где вы можете видеть и изменять файлы, добавлять новый функционал или исправлять ошибки.

Эти компоненты совместно обеспечивают мощную инфраструктуру для управления исходным кодом, позволяя разработчикам управлять историей проекта и сотрудничать.

5. GitHub — ваше портфолио

GitHubэто ведущая веб-платформа для хостинга исходного кода, использующая систему контроля версий Git. Основанная в 2008 году, она быстро стала одним из ключевых инструментов для разработчиков во всем мире.

GitHub дает возможность пользователям создавать репозитории для управления проектами, контролировать и отслеживать изменения в коде и сотрудничать с другими разработчиками. Для современного разработчика профиль на GitHub является важной частью портфолио, которое можно показать потенциальным работодателям.

6. Создание вашего первого репозитория на GitHub

Шаг 1. Зайдите на https://github.com и зарегистрируйтесь.

Шаг 2. Нажмите на кнопку New repository для создания нового репозитория.

Шаг 3. Задайте параметры для репозитория:

  1. Имя репозитория: придумайте осмысленное имя.
  2. Публичный или приватный: для учебных проектов лучше выбрать "Public", чтобы его могли видеть другие.
  3. Add a README file: обязательно поставьте эту галочку. README — это "лицо" вашего проекта.
  4. Add .gitignore: нажмите на выпадающий список и выберите шаблон для вашего языка.
  5. Choose a license: можно пропустить.
  6. Нажмите Create repository.

Шаг 4. Поздравляем, ваш первый удаленный репозиторий создан!

7. Установка и настройка Git

Хотя основы Git можно изучать через консольные команды (как показано в видео), в ежедневной работе 99% разработчиков используют именно удобные инструменты, встроенные в среду разработки. Наша цель — научить вас работать так, как это делают профессионалы.

Интерфейс для работы с Git во всех современных IDE от JetBrains — будь то IntelliJ IDEA для Java/Kotlin, Rider для C# или PyCharm для Python — практически идентичен. Это значит, что научившись работать с Git в одной среде вы сможете легко применять эти навыки в любой другой. Поэтому мы будем использовать IntelliJ IDEA как универсальный пример. Все, что вы увидите здесь, будет выглядеть и работать точно так же и в вашей любимой IDE.

Чтобы работать с Git на вашем компьютере, Git нужно сначала установить. Если вы используете IntelliJ IDEA, она, скорее всего, предложит вам установить Git автоматически, если он не найден в системе. Мы рекомендуем согласиться с этим предложением — это самый простой путь.

Закройте текущий проект, выбрав File > Close Project, и нажмите Clone Repository.

Если же вы хотите установить его вручную, воспользуйтесь официальным сайтом: https://git-scm.com/downloads.

8. Немного об истории: main vs master

Ранее ветка в Git по умолчанию называлась master. Однако в 2020 году сообщество разработчиков и крупнейшие платформы, включая GitHub, перешли на использование более нейтрального термина — main.

Это важно знать, так как в некоторых старых статьях или проектах вы все еще можете встретить упоминание ветки master. В наших лекциях и в современных проектах основной веткой всегда будет main.

Подробнее о переходе на main можно узнать по следующим ссылкам:

Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Ra Уровень 35 Student
2 декабря 2025
То чувство, когда проходил кучу курсов по Git, вплоть до черипиков, но деталей всё равно не помнишь 🤣 Все эти ресет хард, ребейз...
Александр Уровень 39
28 января 2026
когда не пользуешься - из головы в момент вылетает