Просмотр изменений

Тема дорожной карты · Изучи Git

git diff показывает рабочее дерево против индекса (неподготовленные изменения); git diff --staged (псевдоним --cached) — индекс против HEAD (что войдёт в коммит); git diff <a> <b> сравнивает два коммита, ветки или тега; git diff <a>..<b> — то же; git diff <a>...<b> показывает изменения с момента merge base. Флаги: --stat — сводка, --word-diff — для текстов, -w — игнорировать пробелы, -- <path> — ограничение по пути. Настройте графический diff через git config diff.tool и запускайте git difftool.

Просмотр изменений в Git — это ключевой инструмент для разработчиков, который позволяет эффективно управлять изменениями в коде. Он помогает отслеживать и контролировать изменения в файлах, что особенно важно при работе в команде или при использовании системы управления версиями.

Как это работает

Просмотр изменений: git init (создать репо), git status (увидеть изменения), git add <file> (stage), git commit -m "msg" (commit staged), git log (история), git diff (unstaged изменения), git diff --staged (staged, но не committed). Плюс обратная тройка: git restore <file> (отменить working-dir изменение), git restore --staged <file> (unstage), git rm (удалить + stage). 90% повседневного Git — эти команды.

git diff — это мощный инструмент для анализа разницы между различными версиями файлов или коммитов. Он позволяет разработчикам быстро и точно определить, какие изменения были внесены в код. Этот процесс включает в себя сравнение текущего состояния рабочего дерева с индексом, а также сравнение индекса с последним коммитом.

Когда применять

git status каждые 30 секунд — он говорит состояние мира. git diff перед каждым git add — увидите, что собираетесь staging-уть (поймаете debug console.log). git commit -v — diff в редакторе сообщения. git add -p — селективное staging хунков, когда одно логическое изменение в нескольких файлах.

Просмотр изменений особенно полезен перед тем, как добавлять изменения в индекс или коммитить их. Он помогает убедиться, что все необходимые изменения внесены и что нет нежелательных изменений, таких как временные файлы или файлы конфигурации.

Типичные ошибки

Ловушки Просмотр изменений: git add . потом commit без git status сначала (коммитите .env, node_modules, временные файлы IDE); git commit -am "wip" как привычка (work-in-progress коммиты засоряют историю — сквошьте перед merge); git push -f бездумно ("force-push в shared-ветку" — то Slack-сообщение, что никто не хочет).

Разработчики часто сталкиваются с ошибками при использовании команд git diff и git status. Например, использование git add . без предварительного просмотра изменений может привести к коммитированию нежелательных файлов. Также важно избегать привычки делать work-in-progress коммиты, которые могут засорять историю коммитов.

Связанные понятия

Полезные ресурсы