Примечание для читателя: у этого руководства есть видео на канале YouTube Машина, на которое вы можете ссылаться, когда застрянете.

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

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

Некоторые примеры систем управления версиями включают Git — популярную распределенную систему управления версиями, SVN (Subversion) — централизованную систему управления версиями, Mercurial — распределенную систему управления версиями, Perforce — централизованную систему управления версиями, обычно используемую в игровой индустрии для управления большие кодовые базы и CVS или (Concurrent Versions System) — централизованная система управления версиями, популярная в 1990-х и начале 2000-х годов.

Разница между распределенными системами контроля версий (DVCS) и централизованными системами контроля версий (CVCS)

Я уверен, что вы уже задаетесь вопросом, в чем разница между распределенной системой контроля версий (DVCS) и централизованной системой контроля версий (CVCS).

Позволь мне объяснить:

Распределенные системы контроля версий (DVCS) и централизованные системы контроля версий (CVCS) — это два разных подхода к управлению изменениями файлов в программном коде, документации или других цифровых активах.

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

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

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

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

Что такое Git?

Теперь перейдем к самой популярной в мире системе контроля версий, которую используют 93% разработчиков по данным StackOverflow. Говно!

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

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

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

Git также обладает широкими возможностями настройки, с широким спектром плагинов и расширений, доступных для добавления новых функций и возможностей. Его можно использовать с различными платформами и инструментами, включая GitHub, GitLab и Bitbucket, которые предоставляют дополнительные функции для совместной работы и управления проектами.

Установка и настройка Git

Чтобы установить Git на свой компьютер, вам нужно перейти на официальную страницу загрузки веб-сайта git и следовать инструкциям, которые соответствуют вашей операционной системе.

В этом руководстве мы будем выполнять установку из командной строки Linux. Если вам нужно лучше познакомиться с интерфейсом командной строки, вы должны прочитать начало работы с интерфейсом командной строки, прежде чем продолжить.

Установка

  1. Откройте окно терминала.

2. Введите следующую команду, чтобы обновить и обновить ваш репозиторий.

sudo apt update && sudo apt upgrade

3. Введите следующую команду для установки Git:

sudo apt-get install git

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

git - version

Конфигурация

  1. Настройте Git с вашим именем и адресом электронной почты, введя следующие команды:
git config --global user.name "Your Name" 
git config --global user.email "[email protected]"

Обязательно замените «Ваше имя» и «[email protected]» вашим настоящим именем и адресом электронной почты.

2. По умолчанию Git создаст ветку с именем master, когда вы создадите новый репозиторий с помощью git init. Начиная с Git версии 2.28, вы можете задать другое имя для начальной ветки. Чтобы установить main в качестве имени ветки по умолчанию, выполните следующие действия:

git config --global init.defaultBranch main

3. Теперь вы можете проверить параметры конфигурации, запустив:

git config --list

В нем будут перечислены все конфигурации, которые были настроены на данный момент.

Основные команды Git

Git-статус

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

Начнем с команды git status:

  1. Откройте терминал с помощью [ ctrl + alt + T ] на клавиатуре.
  2. Подтвердите, что вы находитесь в домашней папке с помощью команды pwd.
pwd

3. Перейдите в папку Document с помощью компакт-диска.

cd Documents

4. Создайте новую папку под названием coding tools с помощью команды mkdir. Используйте флаг -v, чтобы распечатать вывод команды.

mkdir -v  coding_tools

5. Откройте папку инструментов кодирования с помощью vs_code.

code coding_tools

6. Откройте терминал внутри vs_code. Для этого перейдите на панель инструментов vs_code вверху, выберите терминал и в раскрывающемся меню выберите новый терминал. Вы также можете использовать сочетание клавиш [ctrl + shift + `] для достижения тех же результатов.

7. Проверьте состояние git папки coding_tools с помощью команды git status.

git status

8. Вы должны получить следующий ответ, указывающий, что git не был инициализирован в этом каталоге.

fatal: not a git repository (or any of the parent directories): .git

Инициализировать Git

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

Чтобы использовать команду git init:

  1. Подтвердите, что вы находитесь в папке инструментов кодирования с помощью команды pwd
pwd

2. Запустите команду git init

git init 

3. Вы должны получить следующий ответ.

Initialized empty Git repository in /home/themachine/Documents/coding_tools/.git/

4. Убедитесь, что новый подкаталог git создан с помощью команды ls -a. Если git был инициирован, вы должны увидеть следующий ответ в своем терминале.

.  ..  .git

Git добавить

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

Чтобы использовать команду git add:

  1. Создайте новый файл внутри инструментов кодирования с помощью сенсорной команды и назовите его «the_command_line_interface.md» следующим образом.
touch the_command_line_interface.md

.md = Markdown › Markdown — это простой в использовании язык разметки, который используется с обычным текстом для добавления элементов форматирования (заголовков, маркированных списков, URL-адресов) к обычному тексту без использования формального текстового редактора или тегов HTML. . Markdown не зависит от устройства и отображает формат записи одинаково на всех типах устройств.

Подробнее об этом можно прочитать здесь.

2. В проводнике vs_code дважды щелкните файл, чтобы открыть его.

3. Проверьте статус git вашего файла сейчас, и вы должны увидеть следующий ответ, указывающий, что есть неотслеживаемые изменения, выделенные красным цветом.

On branch main

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        the_command_line_interface.md

nothing added to commit but untracked files present (use "git add" to track)

4. Теперь запустите команду git add с именем файла следующим образом.

git add the_command_line_interface.md

5. Теперь, когда вы запустите команду git status, вы увидите, что файл был подготовлен и стал зеленым.

On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   the_command_line_interface.md

Зафиксировать в Git

Git commit — это команда в системе контроля версий Git, используемая для сохранения изменений, внесенных в файл или группу файлов, в репозиторий Git. Коммит подобен моментальному снимку текущего состояния кода в данный момент времени и содержит сообщение с описанием внесенных изменений.

Чтобы использовать команду git add:

  1. Теперь, когда ваш файл подготовлен, вы можете продолжить и зафиксировать эти изменения с помощью git commit.
  2. Запустите коммит git следующим образом:
git commit -m "initial commit"

Параметр -m указывает сообщение фиксации, которое должно быть кратким и информативным описанием изменений, внесенных в фиксацию. Начальное сообщение фиксации обычно используется для первой фиксации в документе.

3. Затем вы должны получить следующий вывод, указывающий, что фиксация была сделана.

[main (root-commit) 3f1b7fd] initial commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 the_command_line_interface.md

4. Когда вы запустите команду git status, вы должны увидеть, что коммитить нечего.

On branch main
nothing to commit, working tree clean

Журнал Git

Git log — это команда, используемая в системе контроля версий Git, которая отображает журнал истории коммитов репозитория. Он показывает сообщения коммитов, авторов, даты и хэши коммитов для всех коммитов в репозитории. Самые последние коммиты отображаются первыми.

Чтобы использовать команду git log:

  1. Подтвердите, что вы все еще находитесь в папке coding_tools с помощью команды pwd.
pwd

2. Запустите команду git log

git log

3. Вы должны увидеть следующий ответ, указывающий на вашу последнюю фиксацию.

commit 3f1b7fd1e2ba82332ac5dbe2ace30c6bc27aa48b (HEAD -> main)
Author: themachine <[email protected]>
Date:   Tue Mar 28 03:58:49 2023 +0300

    initial commit

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

4. Чтобы выйти из сообщений журнала, нажмите q для выхода.

Заключение

В приведенных выше примерах показано, как начать работу с системой контроля версий git. Однако с ним можно сделать гораздо больше. Для получения дополнительной информации вы можете посетить страницу документации, где есть справочное руководство по всем командам git и тому, как их использовать.

Также в документации есть Pro Git book, написанная Скоттом Чаконом и Беном Страубом, которую можно читать онлайн бесплатно. Это очень хороший ресурс, который поможет вам понять git.

Наконец, если вы предпочитаете учиться на YouTube, вы можете пройти этот ускоренный курс для начинающих от freeCodeCamp.