Команды в системе контроля версий 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

Происходит возврат истории на один коммит назад, при этом рабочая директория и индекс не изменяются.

Важно: перед использованием git reset, особенно с флагом –hard, рекомендуем создавать резервную копию кода.

Понравилась статья? Запишись в академию ifellow и узнай еще больше!

  • 3 направления
    15+ экспертов

    Школа тестирования

    • Функциональное тестирование
    • Курс нагрузочного тестирования
    • Курс автоматизированного тестирования
    Подробнее
    Иконка мини логотипа Иконка мини логотипа
  • 2 направления
    10+ экспертов

    Школа аналитики

    • Курс системного анализа Junior
    • Курс системного анализа Middle
    Подробнее
    Иконка мини логотипа Иконка мини логотипа
  • 1 направление
    2 эксперта

    Школа Java Разработки

    • Курс Java разработка
    Подробнее
    Иконка мини логотипа Иконка мини логотипа

Оставьте заявку на обучение в академии iFellow

Иконка мини логотипа

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

Задний фон блока

Файлы cookie обеспечивают работу наших сервисов. Используя наш сайт, вы соглашаетесь с нашими правилами в отношении этих файлов.