Как использовать систему управления версиями 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

На сегодняшний день существует довольно много разных систем контроля версий. Однако именно 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.
Вы должны согласиться с условиями для продолжения


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