Gymterview
junior

Какие основные команды Git нужно знать?

Команды Git — это набор CLI-инструментов для управления репозиторием, разделённых на категории: создание, отслеживание изменений, работа с ветками, синхронизация.

Создание и клонирование

Пример
# Создать новый локальный репозиторий
git init

# Клонировать удалённый репозиторий
git clone https://github.com/user/repo.git

# Клонировать в указанную директорию
git clone https://github.com/user/repo.git my-project

Отслеживание изменений

Пример
# Показать состояние рабочей директории
git status

# Показать изменения в файлах (unstaged)
git diff

# Показать изменения, добавленные в индекс (staged)
git diff --staged

# Добавить файл в индекс (staging area)
git add Main.java

# Добавить все изменённые файлы
git add .

# Зафиксировать изменения
git commit -m "feat: добавлен новый сервис авторизации"

# Просмотреть историю коммитов
git log
git log --oneline --graph --all

Работа с ветками

Пример
# Создать новую ветку
git branch feature/auth

# Переключиться на ветку
git switch feature/auth        # современный способ (Git 2.23+)
git checkout feature/auth      # классический способ

# Создать ветку и переключиться на неё
git switch -c feature/auth
git checkout -b feature/auth

# Удалить ветку
git branch -d feature/auth     # безопасное удаление (проверяет merge)
git branch -D feature/auth     # принудительное удаление

Синхронизация с удалённым репозиторием

Пример
# Скачать изменения без слияния
git fetch origin

# Скачать и слить изменения (fetch + merge)
git pull origin main

# Отправить изменения на удалённый сервер
git push origin feature/auth

# Посмотреть удалённые репозитории
git remote -v

Слияние и перебазирование

Пример
# Слить ветку в текущую
git merge feature/auth

# Перебазировать текущую ветку на main
git rebase main

Временное сохранение

Пример
# Сохранить незакоммиченные изменения
git stash

# Восстановить сохранённые изменения
git stash pop

Ключевые моменты

  • git pull = git fetch + git merge — важно понимать эту разницу
  • git switch и git restore (Git 2.23+) — более безопасные альтернативы перегруженной команде git checkout
  • git add . добавляет все изменения в текущей директории, git add -A — во всём репозитории
  • Всегда проверяйте git status перед коммитом

Частые ошибки

  • Использование git add . без предварительного git status — можно случайно добавить лишние файлы
  • Путать git pull и git fetchpull сразу меняет рабочую директорию
  • Забывать указать ветку при git push, особенно при первом пуше новой ветки (нужно git push -u origin branch-name)
  • Делать огромные коммиты вместо маленьких атомарных — усложняет review и откат

Как используется в 2026

  • git switch и git restore стали рекомендуемыми командами вместо git checkout для соответствующих операций
  • git log --oneline --graph — незаменим при работе с множеством веток
  • Многие команды автодополняются AI-ассистентами в IDE
  • Использование git pull --rebase по умолчанию стало распространённой практикой для более чистой истории

На собеседовании: покажите, что знаете не просто список команд, а понимаете их связь: pull = fetch + merge, switch — современная замена checkout. Интервьюер часто спрашивает разницу между git add . и git add -A, а также зачем нужен git fetch отдельно от pull.