- Как использовать систему контроля версий Git в Linux [Полное руководство]
- Изучите контроль версий с помощью Git
- Создает новый репозиторий Git
- Клонировать репозиторий Git
- Проверьте сводку статуса Git
- Git Stage Changes и коммит
- Публикация локальных коммитов в удаленном репозитории Git
- Создайте новую ветку Git
- Слияние изменений из одной ветки в другую
- Загрузка изменений из удаленного центрального репозитория
- Осмотрите репозиторий Git и выполните сравнения
Как использовать систему контроля версий Git в Linux [Полное руководство]
Контроль версий (контроль версий или контроль версий) — это способ записи изменений в файле или наборе файлов с течением времени, чтобы вы могли позже вызвать определенные версии. Система контроля версий (или сокращенно VCS) — это инструмент, который записывает изменения файлов в файловой системе.
Существует множество систем контроля версий, но Git в настоящее время является самой популярной и часто используемой, особенно для управления исходным кодом. На самом деле контроль версий можно использовать практически для любого типа файлов на компьютере, а не только для исходного кода.
Системы/инструменты контроля версий предлагают несколько функций, которые позволяют отдельным лицам или группам людей:
- создавать версии проекта.
- точно отслеживать изменения и разрешать конфликты.
- объединить изменения в общую версию.
- откатывать и отменять изменения в выбранных файлах или во всем проекте.
- доступ к историческим версиям проекта для сравнения изменений с течением времени.
- просмотреть, кто последним изменил что-то, что может вызвать проблему.
- создать безопасную резервную копию проекта за пределами площадки.
- использование нескольких компьютеров для работы над одним проектом и многое другое.
Проект в системе контроля версий, такой как Git, будет состоять в основном из трех разделов, а именно:
- репозиторий: база данных для записи состояния или изменений в файлах вашего проекта. Он содержит все необходимые метаданные и объекты Git для нового проекта. Обратите внимание, что это обычно то, что копируется при клонировании репозитория с другого компьютера в сети или на удаленном сервере.
- рабочий каталог или область: хранит копии файлов проекта, с которыми вы можете работать (добавлять, удалять и выполнять другие действия по изменению).
- промежуточная область: файл (известный как индекс в Git) в каталоге Git, в котором хранится информация об изменениях, которые вы готовы зафиксировать (сохранить состояние файла или набора файлов) в репозиторий.
- Централизованные системы контроля версий (CVCS): здесь каждый участник проектной группы получает свой собственный локальный рабочий каталог, однако они фиксируют изменения только в одном центральном репозитории.
- Распределенные системы управления версиями (DVCS): при этом каждый член проектной группы получает свой собственный локальный рабочий каталог и каталог Git, где они могут делать коммиты. После того, как человек сделает фиксацию локально, другие члены команды не смогут получить доступ к изменениям, пока он/она не отправит их в центральный репозиторий. Git является примером DVCS.
Кроме того, репозиторий Git может быть голым (репозиторий без рабочего каталога) или не голым (с рабочим каталог). Общие репозитории (общедоступные или центральные) всегда должны быть пустыми — все репозитории Github пусты.
Изучите контроль версий с помощью 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 “Aaron Kili” $ git config --global user.email “”
Чтобы проверить настройки Git, используйте следующую команду.
Создает новый репозиторий Git
Общие репозитории или централизованные рабочие процессы очень распространены, и это то, что мы продемонстрируем здесь. Например, мы предполагаем, что вам поручили настроить удаленный центральный репозиторий для системных администраторов/программистов из различных отделов вашей организации для работы над проектом под названием bashscripts, который будет храниться в папке >/projects/scripts/ на сервере.
SSH на удаленный сервер и создайте необходимый каталог, создайте группу с именем sysadmins (добавьте в эту группу всех членов проектной группы, например, пользователя admin) и установите соответствующие разрешения на этот каталог.
# mkdir-p /projects/scripts/ # groupadd sysadmins # usermod -aG sysadmins admin # chown :sysadmins -R /projects/scripts/ # chmod 770 -R /projects/scripts/
Затем инициализируйте голый репозиторий проекта.
# git init --bare /projects/scripts/bashscripts
На этом этапе вы успешно инициализировали пустой каталог Git, который является центральным хранилищем для проекта. Попробуйте сделать список каталога, чтобы увидеть все файлы и каталоги в нем:
# ls -la /projects/scripts/bashscripts/
Клонировать репозиторий Git
Теперь клонируйте удаленный общий репозиторий Git на локальный компьютер через SSH (вы также можете клонировать через HTTP/HTTPS, если у вас установлен и правильно настроен веб-сервер, как и случай с большинством общедоступных репозиториев на Github), например:
$ git clone ssh://_server_ip:/projects/scripts/bashscripts
Чтобы клонировать его в определенный каталог (~/bin/bashscripts), используйте приведенную ниже команду.
$ git clone ssh://_server_ip:/projects/scripts/bashscripts ~/bin/bashscripts
Теперь у вас есть локальный экземпляр проекта в не голом репозитории (с рабочим каталогом), вы можете создать начальную структуру проекта (т.е. добавить README.md, подкаталоги для различных категорий сценариев, например, recon для хранения сценариев разведки, sysadmin для хранения сценариев системного администратора и т. д.):
Проверьте сводку статуса Git
Чтобы отобразить состояние вашего рабочего каталога, используйте команду состояния, которая покажет вам все сделанные вами изменения; какие файлы не отслеживаются Git; те изменения, которые были поставлены и так далее.
Git Stage Changes и коммит
Затем внесите все изменения с помощью команды add с переключателем -A и выполните первоначальную фиксацию. Флаг -a предписывает команде автоматически размещать измененные файлы, а -m используется для указания сообщения фиксации:
$ git add -A $ git commit -a -m "Initial Commit"
Публикация локальных коммитов в удаленном репозитории Git
Как руководитель группы проекта, теперь, когда вы создали структуру проекта, вы можете опубликовать изменения в центральном репозитории с помощью команды push, как показано на рисунке.
Прямо сейчас ваш локальный репозиторий git должен быть обновлен до уровня центрального репозитория проекта (источник). Вы можете убедиться в этом, выполнив команду состояния еще раз.
Вы также можете сообщить своим коллегам, чтобы они начали работу над проектом, клонировав репозиторий на свои локальные компьютеры.
Создайте новую ветку Git
Ветвление позволяет вам работать над функцией вашего проекта или быстро исправлять проблемы, не касаясь кодовой базы (основная ветка). Чтобы создать новую ветку и затем переключиться на нее, используйте команды ветка и checkout соответственно.
$ git branch latest $ git checkout latest
Кроме того, вы можете создать новую ветку и переключиться на нее одним действием с помощью команды checkout с флагом -b .
Вы также можете создать новую ветку, например, на основе другой ветки.
$ git checkout -b latest master
Чтобы проверить, в какой ветке вы находитесь, используйте команду ветки (символ звездочки указывает на активную ветку):
После создания и переключения на новую ветку внесите в нее некоторые изменения и сделайте несколько коммитов.
$ vim sysadmin/topprocs.sh $ git status $ git commit add sysadmin/topprocs.sh $ git commit -a -m 'modified topprocs.sh'
Слияние изменений из одной ветки в другую
Чтобы объединить изменения в тестовой ветке с основной веткой, переключитесь на основную ветку и выполните слияние.
$ git checkout master $ git merge test
Если конкретная ветвь вам больше не нужна, вы можете удалить ее с помощью переключателя -d .
Загрузка изменений из удаленного центрального репозитория
Предполагая, что члены вашей команды отправили изменения в центральный репозиторий проекта, вы можете загрузить любые изменения в свой локальный экземпляр проекта с помощью команды pull.
$ git pull origin OR $ git pull origin master #if you have switched to another branch
Осмотрите репозиторий Git и выполните сравнения
В этом последнем разделе мы рассмотрим некоторые полезные функции Git, которые отслеживают все действия, происходящие в вашем репозитории, что позволяет вам просматривать историю проекта.
Первая функция — это журнал Git, в котором отображаются журналы коммитов:
Еще одной важной функцией является команда show, которая отображает различные типы объектов (например, коммиты, теги, деревья и т. д.):
Третья важная функция, которую вам нужно знать, — это команда diff, используемая для сравнения или отображения различий между ветвями, отображения изменений между рабочим каталогом и индексом, изменений между двумя файлами на диске и многого другого.
Например, чтобы показать разницу между основной и последней ветвями, вы можете запустить следующую команду.
Краткое содержание
Git позволяет группе людей работать вместе, используя один и тот же файл (файлы), записывая изменения в файле (файлах) с течением времени, чтобы позже они могли вспомнить определенные версии.
Таким образом, вы можете использовать Git для управления исходным кодом, файлами конфигурации или любым файлом, хранящимся на компьютере. Вы можете обратиться к онлайн-документации Git для получения дополнительной документации.