# git diff и git checkout — что изменилось и как переключиться

Курс: Claude Code и терминал: с 0 — https://zero2claude.ru/learn/code-terminal
Канонический URL: https://zero2claude.ru/learn/code-terminal/5-13-git-diff-checkout

git diff показывает, что изменилось с последнего коммита, git checkout (или switch) переключает ветки и откатывает файлы. Две команды, чтобы не теряться в изменениях.

Когда правок становится много, легко потерять нить: что я вообще менял? как вернуться назад? как переключиться на другую ветку? Две команды держат это под контролем — `git diff` и `git checkout`.

## git diff — что изменилось

`git diff` показывает разницу между тем, что у тебя сейчас, и последним коммитом — построчно:

```
git diff
```

Добавленные строки помечаются плюсом (обычно зелёным), удалённые — минусом (красным). Это лучший способ **посмотреть глазами, что именно ты наменял**, прежде чем делать `git commit`. Тот же вид разницы ты увидишь, когда Claude Code показывает свои правки, — это и есть diff.

Возьми привычку: перед каждым коммитом запускать `git diff` или `git status`. Так в историю попадёт ровно то, что ты хотел, без случайных строк.

## git checkout — переключиться и откатить

У `git checkout` две роли:

1. **Переключить ветку:** `git checkout имя-ветки` — перейти на другую ветку. В новых версиях Git для этого появилась более понятная команда `git switch имя-ветки`.
2. **Откатить файл:** `git checkout файл` — вернуть файл к состоянию последнего коммита, отменив несохранённые правки. (В новых Git это вынесли в отдельную команду `git restore файл`.)

## Как это складывается вместе

Типичный безопасный цикл: посмотрел изменения `git diff` → если всё хорошо, `git add` и `git commit` → если что-то пошло не так, `git checkout` откатил файл и попробовал заново. Так ты всегда видишь, что делаешь, и можешь вернуться назад.

## Попробуй

Разветвлённую работу с ветками тренажёр не имитирует, поэтому задания в терминале здесь нет. Запомни: `git diff` — увидеть изменения, `git checkout`/`git switch` — переключить ветку, `git checkout`/`git restore` по файлу — откатить правки. Ответь на вопросы ниже.
