--- status: seed type: concept tags: [] created: 2025-12-17 updated: 2026-04-30 title: Git --- # Git ## Знакомство с Git **Git** — система управления версиями с распределенной архитектурой, разработанная Линусом Торвальдсом в 2005 году. Среди всех доступных систем управления версиями (*Git*, *Mercurial*, *CVS*, *SVN*), Git является абсолютным лидером и признанным стандартом. Неоспоримыми преимуществами Git являются: - Высокая производительность. - Безопасность. - Гибкость в распределенных системах. - Прекрасные возможности для командной работы. ### Производительность Высокая производительность Git обусловлена подходом по *оптимизации* *внутренних* *процедур* и использованию анализа содержимого файлов Git работает с файлами, храня объекты с содержимым каталога и метаданными их версий. ### Безопасность Безопасность при работе с Git обеспечивается целостностью исходного кода и применением алгоритма шифрования SHA1. Использование Git гарантирует подлинность истории изменений и защищает исходный код от тайного внесения изменений. ### Гибкость Гибкость при работе с Git достигается за счет поддержки линейных и нелинейных циклов разработки, совместимости со множеством других информационных систем и популярных протоколов. ### Возможности для командной работы Git обладает впечатляющими возможностями для командной работы за счет поддержки множества разнообразных моделей управления исходным кодом, удовлетворяющих нужды больших и маленьких команд, простых и сложных распределенных проектов. ## Модели управления исходным кодом Работа с версиями исх. кода в git построена на основе использования: - коммитов (*commit*) - веток (*branches*) - слияния веток (*merge*) - сравнивания версий (*diff*) На основе этих сущностей строятся разнообразные *модели управления исходным кодом*. Большой популярностью пользуется модель под названием *gitflow*. **gitflow** - модель ветвления в git, в которой используются *основные ветки* (main, release, develop) и *функциональные* (features, fix). 1) *main* - официальная история релизов; 2) *release* - концентрация готового к выпуску в прод функционала; 3) *develop* - ветка для разработки функционала.