Системы контроля версий (Version Control Systems, VCS), также известные как системы управления исходным кодом (Source Code Management, SCM), позволяют следить за изменениями, которые вносятся в кодовую базу.
Храня файлы в такой системе, можно просматривать любые изменения (добавление и удаление кода) и узнавать, когда и кем они были сделаны.
С помощью VCS вы можете откатываться к более ранним версиям и сравнивать разные версии одного и того же файла. Системы контроля версий — важнейший инструмент в современной разработке. Они делают изменения видимыми для всех и позволяют нескольким людям работать над одними и теми же файлами и объединять изменения — это упрощает управление версиями и релизами.
Системы контроля версий бывают двух видов: распределенные и централизованные. В централизованных системах все файлы хранятся на едином сервере, а пользователи создают локальные копии файлов и впоследствии синхронизируют их с первоисточником.
Основной минус такого подхода в том, что центральный сервер оказывается узким местом. Распределенные системы устроены по-другому: они хранят по несколько копий файлов, а значит, есть несколько первоисточников.
Вне зависимости от типа, VCS работают по общему принципу: вы обновляете локальную версию файла (вносите изменения на своем компьютере) и затем публикуете изменения (делаете коммит).
Если вы планируете реализовать непрерывную интеграцию и построить CI/CD-пайплайн, первое, что вам нужно сделать, — разместить файлы приложения в доступном всем VCS-репозитории.
Разработчики будут регулярно публиковать свои изменения и тем самым запускать автоматизированную сборку и тестирование — это позволит им быстро получать обратную связь по внесенным изменениям.
Если в ходе тестирования или в продакшне возникнут проблемы, вы увидите, какие коммиты их вызвали, и сможете найти соответствующие изменения в истории версий.