Документация Engee
Notebook

Использование Git в Engee

В данном примере представлены основные команды системы контроля версий Git, которые можно рассматривать как альтернативу использованию Git в файловом браузере и командной строке.

Перед началом работы подключите модуль engee_git.jl:

In [ ]:
include("$(@__DIR__)/engee_git.jl");

и перейдите в файловом браузере в директорию, в которой необходимо осуществлять контроль версий.

Создание и удаление репозитория Git

  • Инициализировать локальный репозиторий в текущей директории:
In [ ]:
engee_git.init();
  • Клонировать удалённый репозиторий в текущую директорию:
In [ ]:
engee_git.clone_url = "git@git.engee.com:namespace/repository.git";
In [ ]:
engee_git.clone(engee_git.clone_url);
  • Удалить репозиторий из текущей директории:
In [ ]:
engee_git.term();
  • Привязать локальный репозиторий к удалённому:
In [ ]:
engee_git.remote_url = "git@git.engee.com:namespace/origin.git";
In [ ]:
engee_git.remote(engee_git.remote_url);

Изменение локального репозитория

  • Вывести текущий статус репозитория:
In [ ]:
engee_git.status();

Индексация изменений

  • Проиндексировать изменение всех файлов в рабочем каталоге:
In [ ]:
engee_git.index_add();
  • Проиндексировать изменение указанных файлов:
In [ ]:
engee_git.index_add_files = "file1.txt file2.txt";
In [ ]:
engee_git.index_add(engee_git.index_add_files);
  • Отменить индексацию изменений всех файлов в рабочем каталоге, сохранив их текущее состояние:
In [ ]:
engee_git.index_reset();
  • Отменить индексацию изменений указанных файлов, сохранив их текущее состояние:
In [ ]:
engee_git.index_reset_files = "file1.txt file2.txt";
In [ ]:
engee_git.index_reset(engee_git.index_reset_files);
  • Перестать отслеживать изменение указанных файлов:
In [ ]:
engee_git.index_remove_files = "file1.txt file2.txt";
In [ ]:
engee_git.index_remove(engee_git.index_remove_files);

Фиксация изменений

  • Зафиксировать изменения:
In [ ]:
engee_git.commit_message = "Initial commit";
In [ ]:
engee_git.commit(engee_git.commit_message);
  • Изменить последнюю фиксацию без изменения комментария:
In [ ]:
engee_git.commit_overwrite();
  • Изменить последнюю фиксацию с перезаписью комментария:
In [ ]:
engee_git.commit_overwrite_message = "New commit";
In [ ]:
engee_git.commit_overwrite(engee_git.commit_overwrite_message);

Возврат к последнему зафиксированному состоянию

  • Вернуть репозиторий в последнее зафиксированное состояние:
In [ ]:
engee_git.reset();
  • Вернуть указанные файлы в последнее зафиксированное состояние:
In [ ]:
engee_git.reset_files = "file1.txt file2.txt";
In [ ]:
engee_git.reset(engee_git.reset_files);

Вывод диагностической информации

  • Вывести историю фиксации изменений:
In [ ]:
engee_git.log();
  • Вывести сравнение проиндексированных изменений с текущим состоянием файлов в рабочем каталоге:
In [ ]:
engee_git.diff();
  • Вывести сравнение последнего зафиксированного состояния с проиндексированными изменениями:
In [ ]:
engee_git.diff("index");
  • Вывести сравнение последнего зафиксированного состояния с текущим состоянием файлов в рабочем каталоге:
In [ ]:
engee_git.diff("directory");
  • Вывести информацию о фиксации изменений с указанным хешем:
In [ ]:
engee_git.commit_show_hash = "engee123456789abcdefghijklmnopqrstuvwxyz";
In [ ]:
engee_git.commit_show(engee_git.commit_show_hash);

Взаимодействие с удалённым репозиторием

  • Получить изменения из удалённого репозитория:
In [ ]:
engee_git.fetch();
  • Получить изменения из удалённого репозитория и выполнить слияние с текущей веткой:
In [ ]:
engee_git.pull();
  • Отправить зафиксированные изменения в удалённый репозиторий:
In [ ]:
engee_git.push();
  • Принудительно отправить зафиксированные изменения в удалённый репозиторий:
In [ ]:
engee_git.push("force");

Ветвление

  • Вывести список веток репозитория:
In [ ]:
engee_git.branch_show();
  • Переключиться на существующую ветку:
In [ ]:
engee_git.branch_switch_name = "master";
In [ ]:
engee_git.branch_switch(engee_git.branch_switch_name);
  • Создать новую локальную ветку:
In [ ]:
engee_git.branch_create_name = "dev";
In [ ]:
engee_git.branch_create(engee_git.branch_create_name);
  • Создать новую локальную ветку и переключиться на неё:
In [ ]:
engee_git.branch_create_switch_name = "feature";
In [ ]:
engee_git.branch_create(engee_git.branch_create_switch_name, true);
  • Переименовать текущую ветку:
In [ ]:
engee_git.branch_rename_name = "main";
In [ ]:
engee_git.branch_rename(engee_git.branch_rename_name);
  • Удалить ветку:
In [ ]:
engee_git.branch_remove_name = "feature";
In [ ]:
engee_git.branch_remove(engee_git.branch_remove_name);

Выводы

Данный пример демонстрирует альтернативный способ работы с системой контроля версий Git в Engee.

Помимо использования вкладки Git в файловом браузере или непосредственного ввода команд в терминал, можно, находясь в локальном репозитории, последовательно запускать ячейки из данного скрипта.

А при необходимости аналогичным образом можно сформировать и свой скрипт, предназначенный для автоматизации работы с системой контроля версий Git.