В чем разница между commit, branch и tag

«В чем разница между commit, branch и tag» — вопрос из категории DevOps, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Commit — это снимок изменений в репозитории, фиксирующий состояние файлов на определенный момент времени. Каждый коммит имеет уникальный хэш (например, a1b2c3d).

Branch — это указатель на коммит, позволяющий вести параллельную разработку. По умолчанию используется ветка main/master. Создать ветку:

git branch feature-x
git checkout feature-x

Tag — это именованная метка для конкретного коммита (обычно для версий, например, v1.0.0). Теги бывают легковесные (просто ссылка) и аннотированные (с доп. информацией). Создать тег:

git tag -a v1.0.0 -m "Release version 1.0.0"

Итог:

  • Коммит — фиксация изменений.
  • Ветка — подвижный указатель для разработки.
  • Тег — статичная метка для релизов.