Pandora ResearchPandora
Research
RUEN
DevOps

Git: основы контроля версий

Pandora ResearchPandora Research
7 июля 20265 мин чтения

Git — это система управления версиями файлов с распределённой архитектурой.

Ниже — краткая памятка по основным командам: инициализация репозитория, его настройка, работа с индексом и коммитами, а также откат изменений.

git init

Команда git init инициализирует новый git-репозиторий.

git config

С помощью команды git config можно изменять различные настройки репозитория — как локальные, так и глобальные.

Возможные настройки: user.name — имя пользователя, от которого будут производиться изменения; user.email — email пользователя, от которого будут производиться изменения.

Попробуем добавить эти настройки к репозиторию:

Terminal
git config user.name "User Name"
git config user.email "user@mail.com"

Внесённые изменения можно увидеть в файле настроек репозитория:

Terminal
cat .git/config

Результат будет следующим:

Terminal
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[user]
	name =  User Name
	email =  user@mail.com

Настройки делятся на несколько уровней: системный — уровень системы с настройками по умолчанию (/etc/gitconfig); глобальный — уровень пользователя (~/.gitconfig); локальный — уровень репозитория (<project>/.git/config).

Для изменения настроек каждого уровня используются соответствующие ключи: --system, --global и --local (используется по умолчанию).

Иерархически сначала настройки ищутся на локальном уровне. Если их там нет, проверяется уровень пользователя, а если и там они отсутствуют — системный уровень с настройками по умолчанию, сделанными при установке git.

С помощью ключа --list можно проверить значения текущих параметров. Введём команду:

Terminal
git config --list --local

Вывод:

Terminal
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
user.name=User Name
user.email=user@mail.com

И аналогичную команду для глобального уровня:

Terminal
git config --list --global

Вывод:

Terminal
user.name=another_user
user.email=another@gmail.com
core.autocrlf=input

git status и git add

git status — проверка состояния репозитория. Команда показывает текущую ветку, список новых файлов, не добавленных в индекс, а также список изменённых и добавленных файлов.

git add добавляет файл в индекс git. Ключ -p позволяет произвести частичный коммит: если в одном файле несколько изменений, git для каждого из них спросит, применять его или нет.

git commit, git show и git reset

git commit записывает изменения из индекса в репозиторий. Ключ -m позволяет в кавычках добавить описание к коммиту.

git show показывает информацию по коммиту: какие файлы были изменены, сами изменения, кто и когда сделал коммит, а также другую информацию. Без параметра команда выводит информацию по последнему коммиту; если добавить id коммита — информацию по нему.

git reset позволяет откатывать изменения.

Git

Есть задача для нашей команды?

Расскажите о проекте — оценим и предложим решение в течение одного рабочего дня.

Обсудить проект