Engee 文档
Notebook

在 Engee 中使用 Git

本示例介绍了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);

结论

本例演示了在Engee中使用Git版本控制系统的另一种方法。

除了在文件浏览器中使用Git选项卡或直接在终端中键入命令外,您还可以从本地版本库中按顺序运行本脚本中的单元格。

如有必要,你还可以创建自己的脚本,以同样的方式自动运行Git版本控制系统。