Как использовать систему управления версиями Git в Linux. Всеобъемлющее руководство.

Как использовать систему управления версиями Git в Linux. Всеобъемлющее руководство.

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

Содержание:

  1. Что можно сделать с помощью системы управления версиями Git
  2. Контроль версий с Git
  3. Установка Git в Linux
  4. Работа с системой управления версиями Git
    1. Создание нового репозитория в системе управления версиями Git
    2. Клонирование хранилища Git
    3. Проверка сводки состояния Git
    4. Изменения в Git Stage и коммит
    5. Публикация локальных коммитов в удаленный репозиторий Git
    6. Ветвление в Git
    7. Объединение изменений в разных ветках системы управления версиями
    8. Применение изменений из удаленного центрального хранилища в локальное
    9. Просмотр содержимого репозитория Git и выполнение сравнения
  5. Выводы

Что можно сделать с помощью системы управления версиями Git

Стоит отметить, что в 2022 году существует довольно много разных систем контроля версий. Однако именно Git на сегодняшний день считается самым распространенным и популярным вариантом инструмента для управления версиями исходного кода ПО. Кроме того, применять контроль версий можно и для любых других файлов, которые могут быть изменены. Например, его можно применять для следующих целей:

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

Также нужно объяснить, из каких элементов состоит проект, работа над которым ведется с помощью Git или другой системы контроля версий. Прежде всего, он включает в себя три основных раздела:

  • рабочий каталог (рабочая область) — предназначена для хранения тех элементов проекта, с которыми конкретный пользователь может работать (изменять, дополнять, удалять и т.п.);
  • репозиторий — хранилище всех файлов проекта с информацией о всех выполненных изменениях (включает в себя все объекты и метаданные Git);
  • промежуточная область — предназначена для хранения файла index under Git с изменениями состояния файла или файлов, которые можно сохранить в репозиторий (закоммитить).

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

  • централизованные системы управления версиями (CVCS) — имеют один репозиторий и выделяют для совместной работы над ним свой рабочий каталог для каждого члена команды;
  • распределенные системы управления версиями (DVCS) — помимо локального рабочего каталога каждому участнику проекта присваивается свой каталог Git для коммитов (чтобы поделиться изменениями с другими членами команды — нужно выложить изменения в центральный репозиторий).

Стоит отметить, что Git является примером второго вида — распределенной системой управления версиями DVCS. Также у репозитория Git возможны два формата:

  • bare — без рабочего каталога;
  • non-bare — с единственным рабочим каталогом.

К примеру, публичные хранилища (Shared) могут существовать только в формате bare — именно так выглядят все репозитории Github.

Контроль версий с Git

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

  • бесплатность;
  • открытость;
  • высокое быстродействие;
  • многофункциональность;
  • распределенность;
  • простота освоения и повседневного использования;
  • повсеместное использование.

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

  1. Вносятся изменения в файлы из локального рабочего каталога.
  2. Готовые файлы помещаются в промежуточный каталог и тем самым становятся частью будущего коммита.
  3. Накопленные файлы из промежуточного каталога сохраняются в репозиторий Git.

Установка Git в Linux

Чтобы установить Git в Linux, используйте соответствующую команду для вашего дистрибутива:

После установки Git рекомендуется сообщить Git, информацию о вас, предоставив свое полное имя и адрес электронной почты, следующим образом:

 

Чтобы проверить настройки Git, используйте следующую команду:

 

View-Git-Settings

Работа с системой управления версиями Git

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

Создание нового репозитория в системе управления версиями Git

Наиболее распространены совместные (общие) репозитории или централизованные рабочие репозитории. Предположим, что вам нужно создать общий репозиторий для совместной работы нескольких команд разработчиков или системных администраторов Linux. Для примера назовем наш проект bashscripts и расположим его на сервере по адресу /projects/scritpts/.

Прежде всего остального, давайте создадим на удаленном сервере SSH соответствующий каталог:

 

После чего — создадим группу пользователей sysadmins и добавим в нее всех членов команды проекта (например, user admin):

 

Теперь нужно только указать соответствующие разрешения для нашего каталога:.

 

Следующий шаг — инициировать пустой репозиторий проекта (bare):

 

Initialize-Git-Shared-Repository

Теперь у нас есть пустой каталог Git — центральное хранилище всех файлов и данных проекта. С помощью простой команды ls можно вывести на экран все его содержимое (файлы и каталоги):

 

List-Git-Shared-Repository

Клонирование хранилища Git

Скорее всего, следующее, что может понадобиться в работе с Git — это клонирование удаленного репозитория с помощью подключения SSH на ваш локальный компьютер. Стоит отметить, что при наличии и установленного и настроенного веб-сервера осуществить клонирование можно и через соединение HTTP / HTTPS. Именно так устроено большинство публичных (Shared) репозиториев на Github. В случае использования SSH-соединения команда git clone будет выглядеть примерно так:

 

Скорее всего, вы захотите клонировать нужный вам репозиторий не куда-нибудь, а в определенный каталог. В случае с нашим примером (~/bin/bashscripts) команда будет выглядеть следующим образом:

 

Clone-Shared-Git-Repository-to-Local

В результате у вас должен получиться собственный локальный экземпляр файлов проекта в репозитории с рабочим каталогом (non-bare). Теперь можно заняться созданием базовой структуры проекта:

  • файла README.md;
  • подкаталогов для разных видов скриптов;
  • задать настройки reconnaissance для хранения сценариев.

В результате можно получить примерно следующую структуру:

 

Create-Git-Project-Structure

Проверка сводки состояния Git

Конечно же, в процессе работы с Git вам может потребоваться узнать статус собственного рабочего каталога:

  • увидеть внесенные изменения;
  • вывести список файлов, которые не отслеживаются системой управления версиями.

Для этого можно воспользоваться командой status:

 

Check-Git-Status

Изменения в Git Stage и коммит

Скорее всего, рано или поздно вам нужно будет сохранить внесенные изменения в файлах проекта. Для этого нужно воспользоваться командой add с опцией -A:

 

После чего осуществить коммит с помощью команды commit с опциями -a и -m.

 

Безусловно, тут нужно объяснить, за что именно отвечают указанные опции:

  • -a — разрешение автоматического добавления файлов;
  • -m — запрос сообщения об успешном выполнении коммита.

В результате у вас должен получиться примерно следующий вывод:

Do-Git-Commit

Публикация локальных коммитов в удаленный репозиторий Git

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

 

Push-Commit-to-Centrol-Git-Repository

Прямо сейчас, ваш локальный репозиторий git должен быть синхронизирован с центральным репозиторием проекта, вы можете проверить это, снова запустив команду status:

 

Check-Git-Status

Помимом всего прочего, предусмотрена возможность оповестить других членов команды, что нужно клонировать репозиторий на их локальные машины. И присоединиться к работе на проектом.

Ветвление в Git

Стоит отметить, что в работе над проектом вам часто будет нужна фукнкция ветвления (Branch). Прежде всего, она позволяет заниматься поиском и исправлением ошибок без изменений в основной ветке проекта. Для этого достаточно создать отдельную ветку проекта, воспользовавшись командами branch и checkout:

 

Кроме того, сделать то же самое — создать новую ветку проекта и переключиться на работу с ней — можно с помощью единственной команды. Для этого просто добавьте к команде checkout опцию -b:

 

Помимо всего прочего, создавать новые ветви можно и на основе других ветвей проекта:

 

Однако так можно легко «заблудиться» и забыть, в какой именно ветви проекта вы работаете в данный момент. К счастью, разработчики предусмотрели такую возможность. Прежде всего, узнать, в какой именно ветке проекта вы работаете, поможет введение команды branch без дополнительных опций и аргументов:

 

Check-Active-Branch

Важно: в выводе команды текущая ветка проекта, в которой вы работаете, будет отмечена символом «*» (звездочка).

Давайте внесем изменения и выполним коммит в той ветке проекта, которую мы создали и открыли для работы:

Объединение изменений в разных ветках системы управления версиями

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

  • ветке-филиале (ответвлении от основной ветки разработки — в нашем примере test);
  • ветке-хозяине (основной ветки разработки — в нашем примере master).

Для этого нужно переключиться на основную ветку и осуществить процесс слияния с помощью команды merge:

 

Merge-Test-Branch-into-Master

Стоит отметить, что после слияния вам может быть больше не нужна та или иная ветка. Потому что все данные из нее уже внесены в основной проект и будут лишь засорять общее хранилище. Для удаления достаточно воспользоваться уже знакомой нам командой branch с опцией -d:

Применение изменений из удаленного центрального хранилища в локальное

Стоит отметить, что все изменения, внесенные другими членами команды в центральный репозиторий, можно применить к своему локальному хранилищу файлов проекта. Прежде всего, в этом вам поможет команда pull:

 

Также это можно сделать, если вы переключились на другую ветку — для этого просто нужно добавить название той ветки, к которой вы желаете применить изменения:

 

Pull-Changes-from-Central-Repository

Просмотр содержимого репозитория Git и выполнение сравнения

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

 

View-Git-Commit-Logs

Также вам пригодится команда, отображающая различные объекты проекта (коммиты, ветви, теги) — show:

 

Git-Show-Objects

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

Давайте попробуем вывести на экран все отличия между основной (master) и дочерней (latest) ветвями:

 

Show-Difference-Between-Branches

Выводы

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

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

Если вы хотите знать больше о данной системе управлениям версиями — обратитесь к документации Git Online. Спасибо за время, уделенное прочтению статьи о том, как использовать систему управления версиями Git в Linux. Надеемся, что данное руководство оказалось вам полезным!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Поиск по сайту
Лучшее
Популярное
Рубрики

Свежие комментарии

Меню