foundation
git diff
Сравнивайте working tree, staged-изменения, коммиты, ветки и диапазоны перед review, commit или релизом.
`git diff` сравнивает деревья: working tree vs index, index vs HEAD, коммит vs коммит, ветка vs ветка.
git diff # unstaged
git diff --staged # staged vs HEAD
git diff main...feature # изменения feature от точки ветвления
git diff v2.3.0 v2.4.0 --stat
| Сравнение | Показывает | |-----------|------------| | `git diff` | Не проиндексированные правки | | `git diff --staged` | Содержимое следующего коммита | | `git diff A B` | Разница коммитов/веток |
На интервью: unstaged vs staged, трёхточечный диапазон для PR-style diff, review lockfile и generated.
Типовые ошибки: diff скрывает семантику rename; diff только форматирования; коммит без просмотра staged.
Компромисс — тщательность перед коммитом против скорости; минимум — `--staged` перед commit.
Чеклист:
- Unstaged и staged.
- Сравнение с нужной merge base.
- Осознанный review lockfile и generated.
- `--stat` сначала на больших диапазонах.