Практика 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 maingit 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
- Перейти на сайт: https://github.com/.
Часть 3. Создание приватного репозитория
- После входа нажать на иконку профиля → Your repositories → New.
- Указать:
- Repository name: library-fastapi-backend
- Выбрать Private.
- Нажать Create repository.
Часть 4. Установка Git на Windows
- Скачать Git: https://git-scm.com/download/win.
- Установить Git, оставляя настройки по умолчанию.
- Проверить установку через Git Bash:
git --versionЧасть 5. Настройка Git
git config --global user.name "ВАШЕ_ИМЯ_НА_GITHUB"git config --global user.email "ВАШ_EMAIL_НА_GITHUB"Часть 6. Подготовка проекта FastAPI
- Перейти в Git Bash в каталог с проектом
Часть 7. Создание .gitignore
# Python__pycache__/*.pyc*.pyo*.pydenv/venv/.envЧасть 8. Загрузка проекта на GitHub
git initgit add .git commit -m "Initial commit with FastAPI app"git branch -M maingit remote add origin https://github.com/ВАШ_USERNAME/fastapi-backend.gitgit push -u origin mainЧасть 9. Collaborators and teams
- В настройках репозитория https://github.com/[проект]/settings/access добавить участника chomaev-shamil