Перейти к содержимому

Практика 6. Операционные системы

L6: Основы Git

Введение

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

Репозиторий (Repository)

Репозиторий — это хранилище проекта и всей его истории изменений. Репозиторий может быть локальным (на вашем компьютере) или удалённым (например, на GitHub).

Репозиторий создаётся командой:

Окно терминала
git init

Или клонируется с удалённого сервера:

Окно терминала
git clone https://github.com/пользователь/проект.git

Коммит (Commit)

Коммит — это сохранение текущего состояния проекта в истории изменений. Каждый коммит содержит комментарий с описанием сделанных изменений.

Чтобы создать коммит:

Окно терминала
git add .
git commit -m "описание изменений"

Ветка (Branch)

Ветка — это независимая линия разработки. Ветки позволяют работать над новыми фичами без риска поломать основную версию проекта.

Создание новой ветки:

Окно терминала
git checkout -b новая_ветка

Переключение между ветками:

Окно терминала
git checkout имя_ветки

Удалённый репозиторий (Remote Repository)

Удалённый репозиторий — это версия проекта, находящаяся на внешнем сервере (например, GitHub). Он используется для совместной работы и хранения резервных копий.

Отправить изменения на сервер:

Окно терминала
git push

Получить обновления с сервера:

Окно терминала
git push

Слияние (Merge)

Слияние — это объединение изменений из одной ветки в другую.

Пример команды для слияния ветки feature в main:

Окно терминала
git checkout main
git merge feature

Часть 1: Изучение основных команд Git

Изучите команды ниже, используя параметр --help, чтобы лучше понять, как они работают. Для каждой команды попробуйте запустить git <команда> --help и изучите документацию.

Основные команды:

  • git init — инициализация нового репозитория в текущей папке.
  • git clone [url] — клонирование удалённого репозитория на локальный компьютер.
  • git add [файл или папка] — добавление файла или папки в индекс для следующего коммита.
  • git commit -m “сообщение” — создание коммита с описанием изменений.
  • git status — просмотр состояния файлов (что изменено, добавлено, не закоммичено).
  • git log — просмотр истории коммитов.
  • git push — отправка изменений в удалённый репозиторий.
  • git pull — получение последних изменений из удалённого репозитория и слияние с локальной копией.
  • git branch — список всех локальных веток.
  • git checkout [ветка] — переключение на указанную ветку.
  • git checkout -b [новая_ветка] — создание новой ветки и переход на неё.
  • git merge [ветка] — слияние указанной ветки в текущую.
  • git remote add origin [url] — добавление ссылки на удалённый репозиторий.
  • git fetch — загрузка изменений из удалённого репозитория без автоматического слияния.
  • git reset [файл] — отмена добавления файла в индекс (до коммита).
  • git rm [файл] — удаление файла из репозитория и файловой системы.
  • git diff — показать различия между файлами (что изменено).
  • git stash — временное сохранение всех незакоммиченных изменений (очистка рабочей директории).
  • git stash pop — восстановление ранее сохранённых изменений.

Часть 2: Регистрация на GitHub

  1. Перейти на сайт: https://github.com/.

Часть 3. Создание приватного репозитория

  1. После входа нажать на иконку профиля → Your repositories → New.
  2. Указать:
  • Repository name: library-fastapi-backend
  • Выбрать Private.
  1. Нажать Create repository.

Часть 4. Установка Git на Windows

  1. Скачать Git: https://git-scm.com/download/win.
  2. Установить Git, оставляя настройки по умолчанию.
  3. Проверить установку через Git Bash:
Окно терминала
git --version

Часть 5. Настройка Git

Окно терминала
git config --global user.name "ВАШЕ_ИМЯ_НА_GITHUB"
git config --global user.email "ВАШ_EMAIL_НА_GITHUB"

Часть 6. Подготовка проекта FastAPI

  1. Перейти в Git Bash в каталог с проектом

Часть 7. Создание .gitignore

# Python
__pycache__/
*.pyc
*.pyo
*.pyd
env/
venv/
.env

Часть 8. Загрузка проекта на GitHub

Окно терминала
git init
git add .
git commit -m "Initial commit with FastAPI app"
git branch -M main
git remote add origin https://github.com/ВАШ_USERNAME/fastapi-backend.git
git push -u origin main

Часть 9. Collaborators and teams

  1. В настройках репозитория https://github.com/[проект]/settings/access добавить участника chomaev-shamil