Что такое контроль версий?

Системы контроля версий (Version Control Systems, VCS), также известные как системы управления исходным кодом (Source Code Management, SCM), позволяют следить за изменениями, которые вносятся в кодовую базу.

Храня файлы в такой системе, можно просматривать любые изменения (добавление и удаление кода) и узнавать, когда и кем они были сделаны.

С помощью VCS вы можете откатываться к более ранним версиям и сравнивать разные версии одного и того же файла. Системы контроля версий — важнейший инструмент в современной разработке. Они делают изменения видимыми для всех и позволяют нескольким людям работать над одними и теми же файлами и объединять изменения — это упрощает управление версиями и релизами.

Системы контроля версий бывают двух видов: распределенные и централизованные. В централизованных системах все файлы хранятся на едином сервере, а пользователи создают локальные копии файлов и впоследствии синхронизируют их с первоисточником.

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

Вне зависимости от типа, VCS работают по общему принципу: вы обновляете локальную версию файла (вносите изменения на своем компьютере) и затем публикуете изменения (делаете коммит).

Если вы планируете реализовать непрерывную интеграцию и построить CI/CD-пайплайн, первое, что вам нужно сделать, — разместить файлы приложения в доступном всем VCS-репозитории.

Разработчики будут регулярно публиковать свои изменения и тем самым запускать автоматизированную сборку и тестирование — это позволит им быстро получать обратную связь по внесенным изменениям.

Если в ходе тестирования или в продакшне возникнут проблемы, вы увидите, какие коммиты их вызвали, и сможете найти соответствующие изменения в истории версий.