Команды в системе контроля версий GIT - Глоссарий
Команды Git
Зачем нужны команды в Git?
Git — это популярная программа распределенной системы контроля версий (VCS, Version Control System), которая может хранить множество релизов одного и того же файла или документа и в любой момент откатываться к более раннему состоянию.
Основные функции и управление версиями
Git содержит рабочий каталог, из которого копируются метаданные и local база при клонировании репозитория (repository) с удаленного сервера. Базовые возможности управления версиями:
- Внесение правок в рабочую версию и возврат к любой из предыдущих редакций
- Просмотр истории внесения правок
- Одновременная работа разработчиков
- Резервная копия данных (backup) кода.
Основные команды
Git status: Как узнать текущее состояние проекта
Показывает состояние файлов в рабочем каталоге. Например, какие документы ожидают коммита в промежуточной зоне (индексе). После клонирования на консоли появляется информация:
On branch master Your branch is up to date with ‘origin/master’. nothing to commit, working tree clean
Редактируем:
>git status On branch master Your branch is up to date with ‘origin/master’. Untracked files: (use “git add <file>...” to include in what will be committed) Program.cs SomeConsoleApp.csproj SomeConsoleApp.sln nothing added to commit but untracked files present (use “git add” to track)
Сохраняем изменения.
Git add: Добавление изменений в индекс
Всегда выполняется после изменений, чтобы подготовить их к коммиту без добавления документа. Например, для отслеживания README, выполняется действие:
$ git add README
При выполнении commands status файл README добавляется в индекс и становится отслеживаемым:
$ git status On branch master Your branch is up-to-date with 'origin/master'. Changes to be committed: (use "git restore --staged <file>..." to unstage) new file: README
Git commit: Сохранение изменений
Отредактированные документы отправляются в индекс git add с возможностью сохранения «снимка» новой версии с помощью commands commit. Информация о commit будет отражать вид правок и автора.
Git log: Просмотр истории
Показывает список и историю всех коммитов в repository. По умолчанию отражает историю текущей ветки, но можно настроить показ сразу нескольких веток и просматривать различия между ними на уровне коммитов.
Git stash: Временное сохранение изменений
Откладывание кода используется, чтобы на время «сдать в архив» исправления в рабочей копии. В этом случае текущие изменения (local changes) перемещают в local directory.
Git pull: Обновление local repository
Извлекает информацию из удаленного хранилища и обновляет этими данными локальное хранилище через слияние с текущей веткой.
Синтаксис:
git pull [<options>] [<repository> [<refspec>]]
Дополнительные команды
Работа с удаленными репозиториями (remote)
Remote управляет удаленными репозиториями, в которых можно хранить и обмениваться кодом, а также просматривать, добавлять и удалять их.
Например, посмотреть удаленные repository можно с помощью remote -v:
$ git remote -v origin https://github.com/ваш-пользователь/ваш-репозиторий.git (fetch)
Пример показывает наличие удаленного хранилища с именем origin, который ведет на URL вашего хранилища на GitHub. Его можно применять для извлечения (fetch) и отправки (push) релизов.
Работа с ветками и мержами
Ветки в программе отделяют созданные вновь функций от исходного кода и позволяют работать параллельно над разными задачами, не меняя основную master-ветку до момента объединения.
Допустим, необходимо создать новую ветку testing. Это действие можно выполнить с помощью branch:
$ git branch testing
Чтобы собрать воедино разветвленную историю, разработанные функции, исправления и улучшения в общий проект, используется слияние merge. Мерж часто используется в сочетании с checkout (выбирает текущую ветку) и branch -d (удаляет устаревшую).
Использование Git в GitLab
GitLab — веб-приложение и система управления repository. Программа помогает командам планировать процессы разработки ПО, собирать проект в онлайн-формате и публиковать релизы, а также группировать задачи в проекты, назначать ответственных и ставить дедлайны.
Приложение позволяет управлять правами доступа, отслеживать ошибки, автоматизировать процессы.
Управление конфигурациями и настройками
Конфигурация задается на 3 уровнях:
- Система (--system)
- Пользователь (--global)
- Хранилище.
Например, указание уровня --global означает, что параметры сохранятся в домашнем каталоге пользователя и будут применены для всех его repository.
Примеры использования в реальных проектах
Создание и клонирование repository
Начать работу можно двумя способами — через init и clone.
init применяют, чтобы создать новый локальный repository. Синтаксис:
git init [--bare] [<directory>]
clone используют, чтобы создать локальный клон удаленного хранилища на локальном компьютере и начать работу с ним.
Синтаксис:
git clone <URL репозитория> [<название локальной папки>]
Примеры использования.
git clone https://github.com/username/repo.git
Совместная работа
GitLab дает разработчикам возможность сохранять их код онлайн и параллельно работать в разных проектах. Программа содержит инструменты для управления проектами. Например, доски задач (issue boards) или трекеры (issues), чтобы делить проект на ключевые этапы. Инструменты помогают оптимизировать командную работу, мониторить прогресс и планировать релизы.
Управление и откат изменений
Даже опытные разработчики иногда совершают ошибки и в некоторых ситуациях требуется откатить последний коммит. Допустим, после создания коммита вы поняли, что не добавили файл. В этом случае приходит на помощь reset, которая сбрасывает историю commits до конкретного момента.
Пример:
git reset HEAD~1
Происходит возврат истории на один коммит назад, при этом рабочая директория и индекс не изменяются.