W3docs

Введение

Системы контроля версий, управление исходным кодом, что такое Git, установка Git, SSH-ключи и репозиторий Git.

Системы контроля версий

Это отправная точка курса Learn Git. К концу этого введения вы поймёте, что такое система контроля версий, почему команды полагаются на неё, чем Git отличается от более старых инструментов и как запустить Git на своей машине. Каждый раздел ниже ведёт к полной главе, где тема рассматривается подробно.

Вот что охватывает этот раздел:

Система контроля версий

Система контроля версий (VCS) — это инструмент, который записывает изменения набора файлов со временем, чтобы вы могли вернуться к любой более ранней версии, увидеть, кто и что изменил, и работать параллельно, не перезаписывая чужие изменения. Иногда её называют управлением исходным кодом (SCM) или системой контроля ревизий (RCS).

Существует три семейства VCS, которые отличаются местом хранения истории:

  • Локальные VCS хранят все версии в базе данных на одном компьютере (например, старый инструмент rcs). Просты в использовании, но сбой диска уничтожает всё, а реального сотрудничества нет.
  • Централизованные VCS (CVCS), такие как Subversion (SVN) или CVS, хранят полную историю на одном центральном сервере. Разработчики извлекают рабочую копию, но история существует только на сервере. Если сервер недоступен, никто не может делать коммиты; если он потерян без резервной копии — история проекта пропадает.
  • Распределённые VCS (DVCS), такие как Git или Mercurial, дают каждому разработчику полную копию репозитория, включая всю его историю. Вы можете делать коммиты, ветвиться и просматривать журнал полностью в автономном режиме, а любой клон может восстановить остальные.

Git — это распределённая VCS, что является главной причиной его быстроты и устойчивости.

Управление исходным кодом

Управление исходным кодом (SCM) — это по сути другое название контроля версий. Это практика (и инструментарий) отслеживания изменений в репозитории исходного кода, позволяющая просматривать историю, сравнивать ревизии и разрешать конфликты слияния — ситуации, когда два человека изменяют одни и те же строки и инструмент просит человека решить, какое изменение принять.

SCM позволяет каждому разработчику работать независимо в отдельной ветке и затем объединять результаты с помощью слияния. Помимо обычной истории, хорошая SCM предоставляет аннотации/blame, маркировку релизов и возможность отменить плохое изменение за секунды.

Программное обеспечение для контроля версий

Программное обеспечение для контроля версий — это конкретная программа, реализующая контроль версий для вашей команды. Для одного разработчика это удобно; для команды с несколькими разработчиками это необходимость, так как это единственный безопасный способ объединить работу всех участников.

Популярные варианты включают Git, Subversion (SVN), CVS, Mercurial и Monotone. Каждый проект выбирает тот, который подходит для его рабочего процесса; Git сегодня является наиболее распространённым. Следующие главы подробно сравнивают их преимущества и недостатки.

Что такое Git

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

Git выделяется несколькими причинами:

  • Быстрое локальное ветвление — создание ветки практически мгновенно, так как это всего лишь указатель на коммит.
  • Область подготовки (staging area) — вы точно выбираете, какие изменения войдут в следующий коммит с помощью git add перед запуском git commit.
  • Работа в автономном режиме — каждая операция, кроме синхронизации с удалённым сервером, выполняется с локальной копией.
  • Целостность данных — каждый коммит идентифицируется хешем SHA-1 его содержимого, поэтому повреждение обнаруживаемо.

Установка Git

Работа с Git начинается с его установки (или обновления существующей копии). Установщик различается в зависимости от операционной системы:

  • macOS — установщик Git for Mac, Homebrew (brew install git) или MacPorts.
  • Windows — официальный пакет Git for Windows, который включает Git Bash.
  • Linux — менеджер пакетов вашего дистрибутива, например sudo apt install git на Debian/Ubuntu.

После установки подтвердите версию из терминала:

git --version
# git version 2.45.2

Точный номер, который вы увидите, будет текущим на момент установки; любой последний выпуск 2.x подойдёт для этого курса.

Репозиторий Git

Репозиторий Git («repo») — это хранилище, в котором находятся файлы вашего проекта вместе с полной историей каждого изменения. История хранится в скрытой папке .git в корне проекта.

Репозиторий создаётся одним из двух способов — начать новый с помощью git init или скопировать существующий удалённый с помощью git clone:

# Turn the current folder into a new, empty repository
git init
# Initialized empty Git repository in /path/to/project/.git/

# Or download an existing project and its full history
git clone https://github.com/user/project.git

SSH-ключ

SSH-ключ — это учётные данные доступа, используемые протоколом SSH (Secure Shell). SSH — это сетевой протокол, позволяющий безопасно входить с одного компьютера на другой через ненадёжную сеть.

В Git пара SSH-ключей (закрытый ключ, который вы держите в тайне, и открытый ключ, который вы загружаете на GitHub, GitLab и т.д.) позволяет вам выполнять push и pull без ввода пароля каждый раз. Глава об SSH-ключах описывает процесс генерации ключа и его добавления в вашу учётную запись.

Практика

Практика
Какая из следующих особенностей является характеристикой Git как системы контроля версий?
Какая из следующих особенностей является характеристикой Git как системы контроля версий?
Was this page helpful?