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` сначала на больших диапазонах.