Как использовать систему контроля версий Git в Linux [Подробное руководство]
Контроль версий (контроль версий или контроль версий) – это способ записи изменений в файле или коллекции файлов с течением времени, чтобы вы могли позже вызвать определенные версии. Система контроля версий (или сокращенно VCS) – это инструмент, который записывает изменения в файлах в файловой системе.
Существует множество систем контроля версий, но Git в настоящее время является самой популярной и часто используемой, особенно для управления исходным кодом. Контроль версий на самом деле можно использовать практически для любого типа файлов на компьютере, а не только для исходного кода.
Системы/инструменты контроля версий предлагают несколько функций, которые позволяют отдельным лицам или группам людей:
- создавать версии проекта.
- точно отслеживать изменения и разрешать конфликты.
- объединить изменения в общую версию.
- откат и отмена изменений в выбранных файлах или во всем проекте.
- доступ к историческим версиям проекта для сравнения изменений с течением времени.
- посмотрите, кто последним изменил что-то, что могло вызвать проблему.
- создать безопасную удаленную резервную копию проекта.
- использовать несколько машин для работы над одним проектом и многое другое.
Проект в системе контроля версий, такой как Git, будет состоять в основном из трех разделов, а именно:
- репозиторий: база данных для записи состояния или изменений файлов вашего проекта. Он содержит все необходимые метаданные и объекты Git для нового проекта. Обратите внимание: обычно это то, что копируется при клонировании репозитория с другого компьютера в сети или на удаленном сервере.
- рабочий каталог или область: хранит копии файлов проекта, с которыми вы можете работать (добавлять, удалять и выполнять другие действия по изменению).
- промежуточная область: файл (известный как индекс в Git) в каталоге Git, в котором хранится информация об изменениях, которые вы готовы зафиксировать (сохранить состояние файла или набора файлов) в репозитории.
Существует два основных типа VCS, основное отличие которых заключается в количестве репозиториев:
- Централизованные системы контроля версий (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 “[email ”
Чтобы проверить настройки Git, используйте следующую команду.
git config --list
Создает новый репозиторий Git.
Общие репозитории или централизованные рабочие процессы очень распространены, и это то, что мы покажем здесь. Например, мы предполагаем, что вам было поручено настроить удаленный центральный репозиторий для системных администраторов/программистов из различных отделов вашей организации для работы над проектом под названием bashscripts, который будет храниться в папке . >/projects/scritpts/ на сервере.
SSH на удаленный сервер и создайте необходимый каталог, создайте группу под названием sysadmins (добавьте в эту группу всех членов команды проекта, например, администратора пользователя) и установите соответствующие разрешения для этот каталог.
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://admin@remote_server_ip:/projects/scripts/bashscripts
Чтобы клонировать его в определенный каталог (~/bin/bashscripts), используйте команду ниже.
git clone ssh://admin@remote_server_ip:/projects/scripts/bashscripts ~/bin/bashscripts
Теперь у вас есть локальный экземпляр проекта в нечистом репозитории (с рабочим каталогом). Вы можете создать исходную структуру проекта (т. е. добавить README.md ). , подкаталоги для разных категорий скриптов, например, recon для хранения разведывательных скриптов, sysadmin ro для хранения скриптов системного администратора и т. д.):
cd ~/bin/bashscripts/
ls -la
Проверьте сводку статуса Git
Чтобы отобразить статус вашего рабочего каталога, используйте команду status, которая покажет вам все внесенные вами изменения; какие файлы не отслеживаются Git; те изменения, которые были запланированы и так далее.
git status
Изменения этапа Git и фиксация
Затем внесите все изменения с помощью команды добавления с переключателем -A
и выполните первоначальную фиксацию. Флаг -a
указывает команде автоматически помещать измененные файлы, а -m
используется для указания сообщения фиксации:
git add -A
git commit -a -m "Initial Commit"
Публикация локальных коммитов в удаленном репозитории Git
Как руководитель группы проекта, теперь, когда вы создали структуру проекта, вы можете опубликовать изменения в центральном репозитории с помощью команды push, как показано.
git push origin master
Прямо сейчас ваш локальный репозиторий git должен быть обновлен с помощью центрального репозитория проекта (источник). Вы можете убедиться в этом, выполнив команду status еще раз.
git status
Вы также можете сообщить своим коллегам о начале работы над проектом, клонировав репозиторий на их локальные компьютеры.
Создайте новую ветку Git
Ветвление позволяет вам работать над функцией вашего проекта или быстро устранять проблемы, не затрагивая базу кода (основную ветку). Чтобы создать новую ветку и затем переключиться на нее, используйте команды branch и checkout соответственно.
git branch latest
git checkout latest
Альтернативно вы можете создать новую ветку и переключиться на нее за один шаг, используя команду checkout с флагом -b
.
git checkout -b latest
Вы также можете создать новую ветку, например, на основе другой ветки.
git checkout -b latest master
Чтобы проверить, в какой ветке вы находитесь, используйте команду ветки (звездочка указывает активную ветку):
git branch
После создания и перехода на новую ветку внесите в нее некоторые изменения и выполните несколько коммитов.
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
.
git branch -d test
Загрузка изменений из удаленного центрального репозитория
Предполагая, что члены вашей команды отправили изменения в центральный репозиторий проекта, вы можете загрузить любые изменения в локальный экземпляр проекта с помощью команды pull.
git pull origin
OR
git pull origin master #if you have switched to another branch
Проверьте репозиторий Git и выполните сравнения
В этом последнем разделе мы рассмотрим некоторые полезные функции Git, которые отслеживают все действия, происходящие в вашем репозитории, что позволяет вам просматривать историю проекта.
Первая функция — это журнал Git, который отображает журналы коммитов:
git log
Еще одной важной функцией является команда show, которая отображает различные типы объектов (например, коммиты, теги, деревья и т. д.):
git show
Третья важная функция, которую вам нужно знать, — это команда diff, используемая для сравнения или отображения различий между ветвями, отображения изменений между рабочим каталогом и индексом, изменений между двумя файлами на диске и многого другого.
Например, чтобы показать разницу между основной и последней веткой, вы можете запустить следующую команду.
git diff master latest
Читайте также: 10 лучших альтернатив Git для размещения проектов с открытым исходным кодом
Краткое содержание
Git позволяет группе людей работать вместе, используя один и тот же файл(ы), записывая при этом изменения в файлах с течением времени, чтобы они могли позже вызвать определенные версии.
Таким образом, вы можете использовать Git для управления исходным кодом, файлами конфигурации или любым файлом, хранящимся на компьютере. Вы можете обратиться к онлайн-документации Git для получения дополнительной документации.