Введение в Git

Без использования системы контроля версий работа над проектом выглядит следующим образом: вы создаете директории, в которые помещаете различные версии проекта или создаете несколько версий файла с разными названиями. Данный подход очень просто реализовать, но он не защитит от множества ошибок. Так как все делается вручную, вы можете случайно скопировать не те файлы, или потерять что-то важное. Кроме того, такой подход требует рутинных действий отнимающих время.

Для решения данной проблемы когда-то была придумана VCS (version control system). Данная система представляла из себя базу данных, позволяющую хранить изменения файлов.

принцип версионного контроля

Одной из популярных версий VCS была RVC (Revision Control System), которая встречается до сих пор. Данная система хранит разницу файлов в специальном формате на диске и позволяет воссоздать вид любого файла в любой момент времени, добавив все патчи.

Для совместной работы над файлами была придумана CVCS (централизованная система контроля версий). Таким образом, был сервер, хранящий версии файлов, и клиенты, централизованно получающие файлы. Серьезным недостатком данного подхода было то, что все файлы хранились на сервере, и работа могла продолжаться, только если сервер был доступен, а в случае поломки диска на сервере терялись все данные.

Распределенная система версионного контроля (DVCS) была создана, чтобы решить недостатки предыдущих систем. К данным системам относятся Git, Mercurial, Bazaar и другие популярные современные системы контроля версий. На клиентах хранится полная копия сервера, таким образом, в случае поломки сервера данные могут быть восстановлены с клиента.

схема DVCS

Источник – bxnotes
Редактировать на GitHub