How-to-Use-Git-Version-Control-System-in-Linux

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

GIT

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

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

Системы управления версиями предлагают несколько функций, которые позволяют отдельным лицам или группе людей:

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

 

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

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

 

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

  • Централизованные системы управления версиями (CVCS): здесь каждый член команды проекта получает свой собственный локальный рабочий каталог, однако они вносят изменения только в один центральный репозиторий.
  • Системы управления распределенной версией (DVCS): здесь каждый член команды проекта получает свой собственный локальный рабочий каталог и каталог Git, где он может совершать коммиты. После того, как человек коммитит что-то локально, другие члены команды не могут получить доступ к изменениям, пока он/она не выкладывает их в центральный репозиторий. Git является примером DVCS.

 

Кроме того, репозиторий Git может быть «bare» (репозиторий, который не имеет рабочего каталога) или «non-bare» (с одним рабочим каталогом). Shared (или публичные) хранилища всегда должны быть bare — все репозитории Github являются bare.

 

 

Изучим контроль версий с Git

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

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

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

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

$ sudo apt install git [On Debian/Ubuntu]
$ sudo yum install git [On CentOS/RHEL]

 

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

$ git config --global user.name “Alex Udaff”
$ git config --global user.email “[email protected]

 

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

$ git config --list 

 

View-Git-Settings

 

Создадим новый репозиторий Git

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

Создайте SSH на удаленном сервере и необходимый каталог, затем создайте группу под названием sysadmins (добавьте всех членов команды проекта в эту группу, например, user admin), и установите соответствующие разрешения для этого каталога.

# mkdir-p /projects/scripts/
# groupadd sysadmins
# usermod -aG sysadmins admin
# chown :sysadmins -R /projects/scripts/
# chmod 770 -R /projects/scripts/

 

Затем инициализируйте bare (пустой) репозиторий проекта:

# git init --bare /projects/scripts/bashscripts

 

Initialize-Git-Shared-Repository

 

 

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

# ls -la /projects/scripts/bashscripts/

 

List-Git-Shared-Repository

 

 

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

Теперь клонируйте удаленный общий репозиторий Git на локальный компьютер через SSH (вы также можете выполнить клонирование через HTTP/HTTPS, если у вас установлен и настроен веб-сервер, как это обычно и бывает в большинстве публичных репозиториев Github), например:

$ git clone ssh://[email protected]_server_ip:/projects/scripts/bashscripts 

 

Чтобы клонировать репозиторий в определенный каталог (~/bin/bashscripts), используйте приведенную ниже команду:

$ git clone ssh://[email protected]_server_ip:/projects/scripts/bashscripts ~/bin/bashscripts

 

Clone-Shared-Git-Repository-to-Local

 

 

Теперь у вас есть локальный экземпляр проекта в non-bare репозитории (с рабочим каталогом), вы можете создать начальную структуру проекта (Например, добавить файл README.md, подкаталоги для разных категорий скриптов. Или же, переконфигурировать для хранения сценариев reconnaissance и т. д.):

$ cd ~/bin/bashscripts/
$ ls -la

 

Create-Git-Project-Structure

 

 

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

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

$ git status 

 

Check-Git-Status

 

 

Изменения в Git Stage и Commit

Затем сохраните все изменения, используя команду add с флагом -A и выполните начальный коммит. Флаг -a указывает команде автоматически добавлять файлы, которые были изменены, а флаг -m используется для выведения сообщения о выполнения коммита:

$ git add -A
$ git commit -a -m "Initial Commit"

 

Do-Git-Commit

 

 

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

По мере того как команда проекта выполняет поставленную задачу, вы можете пушить (размещать) изменения в центральном репозитории с помощью команды push:

$ git push origin master

 

Push-Commit-to-Centrol-Git-Repository

 

 

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

$ git status

 

Check-Git-Status

 

 

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

 

Создадим новое ветвление в Git

Ветвление (Branch) позволяет вам работать с функциями вашего проекта или исправлять проблемы, не трогая основу кода (основную ветку). Чтобы создать новую ветку и затем переключиться на неё, используйте команды branch и checkout соответственно:

$ git branch latest
$ git checkout latest

 

Кроме того, вы можете создать новую ветку и переключиться на нее за один шаг, используя команду checkout с флагом -b:

$ git checkout -b latest

 

Также, вы можете создать новую ветвь, основанную на другой ветви:

$ git checkout -b latest master

 

Чтобы проверить, в какой ветке вы находитесь, используйте команду branch (символ звездочки указывает на активную ветку):

$ git branch

 

Check-Active-Branch

 

 

После создания и перехода на новую ветку внесите в неё некоторые изменения и выполните несколько коммитов:

$ vim sysadmin/topprocs.sh
$ git status
$ git commit add sysadmin/topprocs.sh
$ git commit -a -m 'modified topprocs.sh'

 

 

Объединение изменений в одной ветке к другой

Чтобы объединить изменения в ветке-филиале в ветку-мастер, переключитесь на главную ветвь и выполните слияние (merge):

$ git checkout master
$ git merge test 

 

Merge-Test-Branch-into-Master

 

 

Если вам больше не нужна конкретная ветка, вы можете удалить её, используя флаг -d:

$ git branch -d test

 

 

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

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

$ git pull origin

 

Или же:

$ git pull origin master #if you have switched to another branch

 

Pull-Changes-from-Central-Repository

 

 

Осмотр репозитория Git и выполнение сравнений

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

Первой особенностью является журнал Git, в котором отображается фиксация изменений:

$ git log

 

View-Git-Commit-Logs

 

 

Еще одна важная функция — команда show, которая отображает различные типы объектов (например, коммиты, теги, деревья и т.д.):

$ git show

 

Git-Show-Objects

 

 

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

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

$ git diff master latest

 

Show-Difference-Between-Branches

 

 

Итоги

Git позволяет команде людей работать вместе, используя один и тот же файл(ы), с возможностью просмотра изменений в файле(ах).

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

 

 

Спасибо за уделенное время на прочтение статьи!

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

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

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

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
GIT

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

Как установить и настроить GitLab на CentOS 8/7?

292
0
Gitlab — это мощная, надежная, масштабируемая, безопасная, а также эффективная платформа для разработки программного обеспечения и совместной работы на всех…

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

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

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

Most Viewed Posts
Меню