Введение / Зачем это нужно
Git — это распределённая система контроля версий, которая стала стандартом в разработке программного обеспечения. Она позволяет отслеживать изменения в коде, возвращаться к предыдущим версиям, работать параллельно над разными задачами в отдельных ветках и эффективно сотрудничать в команде. Понимание базовых команд Git — обязательный навык для любого разработчика, DevOps-инженера или технического специалиста, работающего с кодом. Эта шпаргалка даст вам практическую базу для повседневной работы с Git в терминале Linux.
Требования / Подготовка
Перед началом убедитесь, что у вас есть:
- Установленный Git. Минимальная версия — 2.30.
- Доступ к терминалу (bash, zsh).
- Учётная запись на платформе с удалённым репозиторием (GitHub, GitLab, Bitbucket), если планируете работать с удалёнными репозиториями.
- Базовые навыки работы в командной строке Linux (навигация по каталогам
cd, создание/удаление файловtouch,rm).
Шаг 1: Установка Git
Если Git ещё не установлен, выполните команду для вашего дистрибутива.
Для Ubuntu/Debian:
sudo apt update
sudo apt install git
Для Fedora/RHEL/CentOS:
sudo dnf install git
Для Arch Linux:
sudo pacman -S git
После установки проверьте версию:
git --version
Вывод должен быть примерно таким: git version 2.43.0.
Шаг 2: Настройка пользователя
Git需要知道, кто делает коммиты. Настройте ваше имя и email один раз для всей системы.
git config --global user.name "Ваше Имя и Фамилия"
git config --global user.email "ваш.email@example.com"
Эти данные будут использоваться по умолчанию во всех ваших репозиториях. Для проверки настроек выполните git config --list.
Шаг 3: Клонирование существующего репозитория
Чтобы начать работать с проектом, который уже существует на удалённом сервере, склонируйте его. Это создаст полную локальную копию.
git clone <URL_репозитория>
Например:
git clone https://github.com/username/project-name.git
Команда создаст каталог project-name и скопирует туда все файлы и историю коммитов. Перейдите в него: cd project-name.
Шаг 4: Добавление файлов и создание коммита
Локальные изменения проходят два этапа: индексация (staging) и фиксация (commit).
- Проверьте статус репозитория, чтобы увидеть изменённые и новые файлы:
git status - Добавьте конкретные файлы в индекс (staging area), чтобы они были готовы к коммиту:
git add filename.txt
Или добавьте все изменённые и новые файлы (кроме игнорируемых):git add . - Зафиксируйте (сделайте коммит) изменения в локальной истории. Комментарий должен быть кратким и осмысленным:
git commit -m "Описание сделанных изменений"
Коммит создан только локально. Он не виден на удалённом сервере.
Шаг 5: Отправка изменений на удалённый сервер
После создания коммита его нужно отправить в центральный репозиторий, чтобы другие могли его увидеть.
git push origin <имя_ветки>
По умолчанию при клонировании удалённый сервер называется origin, а ветка — main или master. Поэтому часто достаточно:
git push origin main
При первом push для новой ветки может потребоваться указать -u для установки отслеживания: git push -u origin feature-branch.
Шаг 6: Работа с ветками
Ветки (branches) позволяют изолировать разработку новых функций или исправления. Основная ветка обычно называется main.
- Создать новую ветку и переключиться на неё:
git checkout -b feature-login
Или используйте современный синтаксис:git switch -c feature-login - Переключиться между существующими ветками:
git checkout main
илиgit switch main - Получить список всех веток (локальных и удалённых):
git branch -a - Удалить локальную ветку (после её слияния в основную):
git branch -d feature-login
Проверка результата
Убедитесь, что операции выполнены корректно:
- После
git commitпроверьте историю коммитов:git log --oneline. Новый коммит должен быть вверху списка. - После
git pushоткройте страницу вашего репозитория на GitHub/GitLab. Новый коммит должен отображаться в списке коммитов. - После создания/переключения ветки выполните
git branch. Звёздочка*покажет, на какой ветке вы сейчас находитесь.
Возможные проблемы
- Ошибка
fatal: not a git repository.- Причина: Вы находитесь не в каталоге Git-репозитория.
- Решение: Перейдите в корень клонированного репозитория (
cd project-name) или инициализируйте новый:git init.
- Ошибка
remote: Repository not foundприgit push.- Причина: Неверный URL удалённого репозитория (
origin) или отсутствие прав на запись. - Решение: Проверьте URL:
git remote -v. При необходимости исправьте:git remote set-url origin <корректный_URL>. Убедитесь, что вы авторизованы на платформе (используйте SSH-ключ или токен).
- Причина: Неверный URL удалённого репозитория (
- Конфликт слияния (merge conflict) при
git pullилиgit merge.- Причина: Одни и те же строки в файле были изменены в разных ветках.
- Решение: Git пометит конфликтующие файлы. Откройте их, найдите блоки между
<<<<<<< HEAD,=======и>>>>>>> branch-name. Вручную отредактируйте файл, оставив нужную версию. Удалите маркеры конфликта. Затем выполнитеgit add <file>иgit commitдля завершения слияния.