Предыдущий ролик Следующий ролик  

Видео урок: Основные концепции контроля версий

Принципы контроля версий

Так что же вы получаете от ПО контроля версий? Все системы контроля версий дают вам четыре важных преимущества. Спокойствие. Каждый раз, когда вы обновляете и сохраняете изменения в системе управления исходным кодом, для ваших файлов создается резервная копия. История. Копируется не только содержимое ваших файлов, но и фактические изменения и ваши комментарии о том, почему вы их внесли. Если вы вернетесь через 3 месяца, вы сможете увидеть, что вы изменяли, и точно вспомнить, почему вы это делали, так как каждое изменение сопровождается коротким сообщением. После небольшой практики вы будете формулировать эти сообщения кратко, содержательно, сжато и по делу. Простая отмена изменений. Вы можете легко вернуться к предыдущей версии.

В одних системах контроля версий это применяется к файлам по одному, в других можно восстановить целое дерево каталогов. Смелые эксперименты. Кроме создания автоматических резервных копий вашего исходного кода вы также можете создать "песочницу", в которой будете экспериментировать с новыми функциями или делать структурные изменения, не боясь испортить то, что уже работает. Контроль версий еще более важен при работе в команде, для которой он обеспечивает три дополнительных возможности. Синхронизация. Когда вы сохраняете изменения в системе контроля версий, члены вашей команды могут легко обновить свои копии исходного кода вашими изменениями. Подотчетность. Каждый раз, когда вы сохраняете изменения, система контроля версий отмечает их вашим идентификатором пользователя - это очень важно при работе в команде, поскольку каждый раз, когда вы получаете чьи-либо изменения, вы можете увидеть, кто их сделал и почему. И, наконец, обнаружение конфликтов. Когда кто-то из вашей команды вносит изменения, которые система контроля версий не может автоматически объединить с вашими. Она сообщит вам об этом и поможет решить проблему с помощью инструментов дифференциации.

Без таких инструментов вы можете легко переписать чужие изменения и потерять критическое обновление. Если вы еще не используете ПО контроля версий, вероятно, вы осуществляете некоторый контроль над изменениями вручную. Возможно, вы используете команду Сохранить как, чтобы создавать резервные копии отдельных файлов, дублируете и/или сжимаете папки, чтобы делать их снимки, и, я надеюсь, сохраняете эти резервные копии на внешнем диске или в облаке. Больше всего времени при осуществлении контроля версий вручную уходит на выяснение того, как отличаются наборы изменений. В конечном итоге вы смотрите на папки с такими названиями, как "бизнес - рабочая", "бизнес - отправить заказчику" и "бизнес - окончательная с исправленными ошибками", а затем пытаетесь выяснить, в чем же разница между ними.

Когда вы перейдете на ПО контроля версий, практически все будет выполняться автоматически. В процессе работы каждая новая версия будет сохраняться в простой системе, похожей на базу данных. Отслеживание изменений от одной версии к другой становится работой системы контроля версий, которая не только показывает вам изменения, но и помогает вспомнить, почему вы их сделали. Потому что, как я уже говорил ранее, вы вынуждены добавлять комментарий при каждом изменении и обновлении. Вы также можете легко вернуться к определенной версии либо одного файла, либо целого набора файлов. Важные этапы можно отмечать тегами (или метками).

Это означает, что вы можете вернуться к определенному состоянию всего продукта, что может быть особенно полезным, когда вам понадобиться исправить ошибку в релизе 2.3.11, который вы выпустили в декабре прошлого года. Итак, если вы готовы использовать ПО контроля версий для отслеживания того, что вы делаете и почему, давайте начнем. Прежде чем мы засучИм рукава и приступим к работе, нам нужно определить шесть ключевых терминов, которые относятся ко всем видам систем контроля версий и являются ключом к пониманию базового процесса. Первый - это хранилище.

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

Файлы на жестком диске, с точки зрения системы управления версиями, являются рабочим набором. Вы изменяете файлы в рабочем наборе, а затем обновляете хранилище, чтобы отразить эти изменения, автоматически создавая резервную копию и обозначая цель изменений; этот процесс называется добавлением (add) для новых файлов, и фиксацией (commit) или внесением изменений (check in) в существующие. После добавления или обновления файлов в хранилище вы можете легко вернуть ваш рабочий набор к любой версии из хранилища.

Если вы работаете в одиночку, вы можете захватить старую версию. Если вы работаете в команде, вы можете захватить файлы, которые были обновлены членами вашей команды. Этот процесс называется либо обновлением (update), либо получением изменений (check out). Как мы уже говорили ранее, вы можете отметить состояние целого дерева проекта или всего хранилища с помощью идентификатора, который называется либо тегом, либо меткой в зависимости от поставщика, когда происходит какое-либо значительное событие, такое как выпуск релиза или его доставка клиенту. Далее мы рассмотрим систему управления версиями в действии.

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