Инструменты для отслеживания изменений

5. Инструменты для отслеживания изменений #

5.1. Использование git diff #

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

Сравнение рабочей директории и staging area #

Чтобы увидеть изменения в файлах, которые ещё не добавлены в staging area:

git diff

Сравнение staging area и последнего коммита #

Если вы добавили изменения с помощью git add, но ещё не зафиксировали их:

git diff --staged

Сравнение двух коммитов #

git diff коммит1 коммит2

Пример:

git diff abc123 def456

Сравнение текущей ветки с другой веткой #

git diff ветка1 ветка2

Пример:

git diff main feature/login

Сравнение изменений в конкретном файле #

git diff имя_файла

Пример:

git diff README.md

5.2. Просмотр истории изменений #

Git предоставляет несколько команд для анализа изменений в истории.

git log #

Просмотр истории коммитов текущей ветки:

git log

Полезные параметры git log: #

  • Краткий вывод:
    git log --oneline
    
  • Отображение в виде графа:
    git log --graph --oneline --decorate
    
  • Фильтрация по автору:
    git log --author="Имя автора"
    
  • Поиск по ключевым словам:
    git log --grep="Ключевое слово"
    

git blame #

Команда git blame позволяет определить, кто внёс изменения в определённые строки файла.

git blame имя_файла

Пример:

git blame main.go
  • Каждый вывод содержит хэш коммита, имя автора и дату изменения строки.

5.3. Теги в Git #

Теги (tags) используются для маркировки определённых точек в истории, например, релизов.

Виды тегов: #

  1. Аннотированные теги: Содержат метаинформацию (автор, дата, сообщение).
  2. Лёгкие теги: Упрощённый вариант, представляющий собой ссылку на коммит.

Создание тегов #

Аннотированный тег: #
git tag -a имя_тега -m "Сообщение"

Пример:

git tag -a v1.0 -m "Первый релиз"
Лёгкий тег: #
git tag имя_тега

Пример:

git tag v1.0

Просмотр тегов #

git tag

Добавление тега к предыдущему коммиту #

git tag -a имя_тега хэш_коммита -m "Сообщение"

Пример:

git tag -a v0.9 abc123 -m "Бета-версия"

Удаление тега #

Локальное удаление: #
git tag -d имя_тега

Пример:

git tag -d v1.0
Удаление на удалённом репозитории: #
git push origin --delete имя_тега

Отправка тегов на удалённый репозиторий #

Отправка всех тегов: #
git push --tags
Отправка конкретного тега: #
git push origin имя_тега

Пример:

git push origin v1.0

Сравнение коммитов с использованием тегов #

git diff тег1 тег2

Пример:

git diff v1.0 v1.1

Итоги #

Инструменты для отслеживания изменений позволяют:

  • Анализировать различия между состояниями файлов (git diff).
  • Просматривать историю изменений и выявлять авторов строк (git log и git blame).
  • Организовывать релизы с помощью тегов, облегчая управление версиями.