Материал предоставлен http://it.rfet.ru

Основные понятия

Следует отметить, что устоявшейся терминологии в области управления версиями не существует и по сей день. Зачастую такие термины, как «управление версиями» и «контроль версий», «версия» и «ревизия», «управление версиями» и «версионность», «репозиторий» и «хранилище», а также их английские аналоги употребляются как синонимы. Кроме того, в различных контекстах под «управлением версиями» довольно часто понимают «систему управления версиями».

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

Итак, при работе с Git Вы неизбежно столкнетесь со следующими основными понятиями.

  • Репозиторий — это папка с Вашими документами, версиями которых управляет Git. Вы можете создать репозиторий из любой папки, за исключением тех из них, которые уже находятся под контролем версий Git. Вы также можете иметь произвольное количество репозиториев на своем компьютере. В каждом из них будет создана специальная папка с названием .git для размещения базы данных объектов и служебных файлов. Обычно при выборе папки для репозитория люди руководствуются простым правилом:

    Один проект — один репозиторий

  • Ревизия или коммит (от англ. commit — фиксировать, совершать) — это фундаментальное понятие управления версиями, обозначающее зафиксированный «снимок» изменений в репозитории на определенный момент времени с обязательной информацией об авторе и текстовым сообщением, поясняющим суть сделанных изменений. Фактически ревизия является неделимой единицей работы, совершенной над репозиторием.

    Операция создания ревизии (committing changes в англ.) является грубым аналогом операции «Сохранить» в текстовом редакторе — в общем случае ею нужно пользоваться как можно чаще, чтобы не потерять ничего важного; любые незафиксированные изменения (uncommitted changes в англ.) не могут быть отслежены с помощью Git.

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

  • Объект (object или blob в англ.) — это файл, сохраненный в локальной базе данных в определенной ревизии. О том, как Git хранит объекты, Вы узнаете в главе «Базовые операции».

Вы также можете встретить термин «Конфигурационное управление» (прямой аналог английского термина «Software configuration management (SCM)») в отношении контроля версий. Следует иметь в виду, что контроль версий — это одна из задач более общей области знаний. Однако в некоторых контекстах термин «SCM» также употребляется как синоним для «VCS».

Подходы к версионностиУстановка Git