Использование Git в Engee¶
В данном примере представлены основные команды системы контроля версий Git, которые можно рассматривать как альтернативу использованию Git в файловом браузере и командной строке.
Перед началом работы подключите модуль engee_git.jl
:
include("$(@__DIR__)/engee_git.jl");
и перейдите в файловом браузере в директорию, в которой необходимо осуществлять контроль версий.
Создание и удаление репозитория Git¶
- Инициализировать локальный репозиторий в текущей директории:
engee_git.init();
- Клонировать удалённый репозиторий в текущую директорию:
engee_git.clone_url = "git@git.engee.com:namespace/repository.git";
engee_git.clone(engee_git.clone_url);
- Удалить репозиторий из текущей директории:
engee_git.term();
- Привязать локальный репозиторий к удалённому:
engee_git.remote_url = "git@git.engee.com:namespace/origin.git";
engee_git.remote(engee_git.remote_url);
Изменение локального репозитория¶
- Вывести текущий статус репозитория:
engee_git.status();
Индексация изменений¶
- Проиндексировать изменение всех файлов в рабочем каталоге:
engee_git.index_add();
- Проиндексировать изменение указанных файлов:
engee_git.index_add_files = "file1.txt file2.txt";
engee_git.index_add(engee_git.index_add_files);
- Отменить индексацию изменений всех файлов в рабочем каталоге, сохранив их текущее состояние:
engee_git.index_reset();
- Отменить индексацию изменений указанных файлов, сохранив их текущее состояние:
engee_git.index_reset_files = "file1.txt file2.txt";
engee_git.index_reset(engee_git.index_reset_files);
- Перестать отслеживать изменение указанных файлов:
engee_git.index_remove_files = "file1.txt file2.txt";
engee_git.index_remove(engee_git.index_remove_files);
Фиксация изменений¶
- Зафиксировать изменения:
engee_git.commit_message = "Initial commit";
engee_git.commit(engee_git.commit_message);
- Изменить последнюю фиксацию без изменения комментария:
engee_git.commit_overwrite();
- Изменить последнюю фиксацию с перезаписью комментария:
engee_git.commit_overwrite_message = "New commit";
engee_git.commit_overwrite(engee_git.commit_overwrite_message);
Возврат к последнему зафиксированному состоянию¶
- Вернуть репозиторий в последнее зафиксированное состояние:
engee_git.reset();
- Вернуть указанные файлы в последнее зафиксированное состояние:
engee_git.reset_files = "file1.txt file2.txt";
engee_git.reset(engee_git.reset_files);
Вывод диагностической информации¶
- Вывести историю фиксации изменений:
engee_git.log();
- Вывести сравнение проиндексированных изменений с текущим состоянием файлов в рабочем каталоге:
engee_git.diff();
- Вывести сравнение последнего зафиксированного состояния с проиндексированными изменениями:
engee_git.diff("index");
- Вывести сравнение последнего зафиксированного состояния с текущим состоянием файлов в рабочем каталоге:
engee_git.diff("directory");
- Вывести информацию о фиксации изменений с указанным хешем:
engee_git.commit_show_hash = "engee123456789abcdefghijklmnopqrstuvwxyz";
engee_git.commit_show(engee_git.commit_show_hash);
Взаимодействие с удалённым репозиторием¶
- Получить изменения из удалённого репозитория:
engee_git.fetch();
- Получить изменения из удалённого репозитория и выполнить слияние с текущей веткой:
engee_git.pull();
- Отправить зафиксированные изменения в удалённый репозиторий:
engee_git.push();
- Принудительно отправить зафиксированные изменения в удалённый репозиторий:
engee_git.push("force");
Ветвление¶
- Вывести список веток репозитория:
engee_git.branch_show();
- Переключиться на существующую ветку:
engee_git.branch_switch_name = "master";
engee_git.branch_switch(engee_git.branch_switch_name);
- Создать новую локальную ветку:
engee_git.branch_create_name = "dev";
engee_git.branch_create(engee_git.branch_create_name);
- Создать новую локальную ветку и переключиться на неё:
engee_git.branch_create_switch_name = "feature";
engee_git.branch_create(engee_git.branch_create_switch_name, true);
- Переименовать текущую ветку:
engee_git.branch_rename_name = "main";
engee_git.branch_rename(engee_git.branch_rename_name);
- Удалить ветку:
engee_git.branch_remove_name = "feature";
engee_git.branch_remove(engee_git.branch_remove_name);
Выводы¶
Данный пример демонстрирует альтернативный способ работы с системой контроля версий Git в Engee.
Помимо использования вкладки Git в файловом браузере или непосредственного ввода команд в терминал, можно, находясь в локальном репозитории, последовательно запускать ячейки из данного скрипта.
А при необходимости аналогичным образом можно сформировать и свой скрипт, предназначенный для автоматизации работы с системой контроля версий Git.