9.0 Немного истории
Одним из ключевых элементов Git являются ветки, которые позволяют вести параллельную разработку разных функций или версий программы.
Изначально в Git DVCS ветка по умолчанию называлась master По умолчанию каждый репозиторий Git имел ветку master. Разработчики редко удаляли ее, так как она играла важную роль в разработке.
Летом 2020 года, на волне протестов и социальных волнений, использование терминов master и slave (хозяин и раб) в IT вызвало бурную дискуссию. В поисках замены master предлагались разные варианты, например, default и primary. Но в итоге наибольшую популярность приобрел термин main.
GitHub принял меры и отказался от термина master при инициализации репозитория Git. Переключение GitHub с master на main возможно в настройках аккаунта Repositories или командой:
$ git branch -m master main
В некоторых учебных материалах все еще может встречаться термин master. Подробнее о переходе на main можно узнать по следующим ссылкам:
9.1 Что такое Git и зачем он нужен
Git — это мощная система управления версиями, используемая для отслеживания изменений в исходном коде во время разработки программного обеспечения. Она позволяет разработчикам сохранять различные версии файлов и координировать работу нескольких людей над общим проектом.
Основные понятия Git:
Репозиторий
Репозиторий (или "репо") — это место, где хранится вся история проекта, включая все изменения и версии файлов. В Git репозиторий включает рабочую директорию, индекс (или стадию) и базу данных объектов.
Коммиты
Коммит (commit) — это сохранённое состояние проекта. Каждый коммит в Git содержит информацию о том, какие изменения были внесены в проект, кем и когда. Коммиты образуют историю проекта и позволяют вернуться к любой предыдущей версии.
Ветви
Ветвь (branch) — это независимая линия разработки. По умолчанию, Git создает ветку main (ранее master). Вы можете создавать новые ветви для разработки новых фич или исправлений, а затем объединять их обратно в основную ветвь.
Слияние и ребейз
Слияние (merge) и ребейз (rebase) — это два способа интеграции изменений из одной ветви в другую. Слияние объединяет истории двух ветвей, создавая новый коммит, а ребейз переносит коммиты одной ветви на вершину другой, изменяя историю коммитов.
9.2 Основные команды Git
Вот таблица с основными командами Git для управления версиями:
| Команда | Описание |
|---|---|
git init |
Инициализирует новый Git-репозиторий в текущей директории. |
git clone |
Клонирует репозиторий из URL в новую директорию. |
git add |
Добавляет файлы в индекс для следующего коммита. |
git commit |
Фиксирует подготовленные изменения в репозитории. |
git push |
Отправляет изменения из локального репозитория в удалённый. |
git pull |
Обновляет текущую ветку с последней версией из удалённого репозитория. |
git branch |
Показывает, создаёт или удаляет ветки. |
git merge |
Сливает изменения указанной ветки в текущую ветку. |
git rebase |
Переносит изменения на новую базу (чаще всего, это другая ветка). |
Эти команды представляют основные инструменты работы в Git, позволяя управлять изменениями кода, ветками и слияниями в проектах любого размера. Подробнее мы пройдемся по ним в следующих лекциях.
9.3 Три места хранения кода
Когда вы будете пользоваться системой контроля версий для вашего кода, ваш код, грубо говоря, будет храниться в трех местах:
1. Удаленный репозиторий:
Это централизованное место для хранения вашего кода, обычно размещенное на таких сервисах, как GitHub, GitLab или Bitbucket. Они обеспечивают централизованное хранение кода и являются основой для совместной работы.
Удаленные репозитории позволяют разработчикам делиться своими изменениями, синхронизировать усилия и вести историю изменений проекта. Также удаленный репозиторий служит точкой интеграции для автоматизации процессов, таких как сборка, тестирование и развертывание приложений.
2. Локальный репозиторий:
Локальный репозиторий — это ваша персональная копия кода, хранящаяся на вашем компьютере. В этом репозитории вы можете выполнять все операции с Git (коммиты, ветвления, слияния) без необходимости подключения к интернету.
Локальные репозитории позволяют разработчикам работать изолированно от коллег, экспериментировать, создавать новые функции или исправлять ошибки, прежде чем изменения будут объединены (слияние) и отправлены в удаленный репозиторий.
3. Рабочая директория:
Рабочая директория на вашем компьютере содержит актуальные файлы проекта, над которыми вы в данный момент работаете. Это место, где вы можете видеть и изменять файлы, добавлять новый функционал или исправлять ошибки.
После внесения изменений, вы можете добавлять их в индекс (staging area), а затем фиксировать в локальном репозитории. Рабочая директория связана с текущей веткой в вашем репозитории и изменение веток изменяет содержимое рабочей директории.
Эти компоненты совместно обеспечивают мощную инфраструктуру для управления исходным кодом, позволяя разработчикам управлять историей проекта, сотрудничать и разделять ответственность за код.
9.4 GitHub самый популярный бесплатный репозиторий
GitHub — это ведущая веб-платформа для хостинга исходного кода, использующая систему контроля версий Git. Основанная в 2008 году, она быстро стала одним из ключевых инструментов для разработчиков по всему миру.
GitHub позволяет пользователям создавать репозитории для управления проектами, контролировать и отслеживать изменения в коде, сотрудничать с другими разработчиками и вести разработку в открытом или частном порядке. Он предоставляет такие функции, как форки, ветки, пул-реквесты и слияния, что позволяет разработчикам легко совместно работать над проектами.
GitHub также включает в себя функциональность по отслеживанию проблем, запросам функций, управлению задачами и вики для каждого проекта. Платформа интегрируется с множеством инструментов и сервисов, предлагая обширные возможности для автоматизации разработки, тестирования и развертывания приложений.
GitHub поддерживает обширное сообщество разработчиков, в котором активно обсуждаются лучшие практики программирования, управления проектами и многое другое. Это делает его не только инструментом для управления проектами, но и центром сообщества, где разработчики могут обмениваться знаниями и опытом.
9.5 Регистрация на GitHub
Шаг 1. Зайдите на https://github.com
Шаг 2. Зарегистрируйтесь.
Шаг 3. Нажмите на кнопку New repository для создания нового репозитория.
Шаг 4. Зададим параметры для репозитория:
- Имя репозитория.
- Публичный или приватный. Для начала выберите "Публичный"
- Добавьте файл README – он нам понадобится в будущем.
- Нажмите
Create repository
Параметры которые пока пропустили:
- Файл .gitignore. Пока пропустим этот пункт. Он полезен для исключения определенных файлов из вашего репозитория.
- Лицензия. Она определяет, как другие могут использовать и распространять вашу работу.
- Ветка
main. По умолчанию GitHub используетmainв качестве имени основной ветки в вашем репозитории.
Шаг 4. Получаем наш первый репозиторий
Установка Git на ваш компьютер
Здесь все просто: жмем на первую ссылку гугла, устанавливаем и всё.
Если используете PyCharm, не обязательно устанавливать git отдельно. Если PyCharm обнаружит, что Git не установлен в вашей системе, он предложит вам установить его во время первоначальной настройки.
Установка для Windows
Как обычно, нужно скачать exe файл и запустить его. Загрузите установщик Git с официального сайта: https://git-scm.com/downloads
Установка для Linux
Обычно git уже установлен и есть в дистрибутивах линукса, чтобы проверить это, нужно открыть терминал и прописать: git --version
Используйте менеджер пакетов вашего дистрибутива для установки Git. Например, в Ubuntu или Debian вы можете использовать следующую команду:
sudo apt-get install git
Установка на macOS
Здесь также для начала нужно проверить, есть ли уже гит (смотри выше, как на линуксе).
Если все же нет, самый простой путь — это скачать последнюю версию.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ