中文

GIT — Git

GIT Git 仓库可以像文件夹一样浏览:已更改的文件、分支、历史。

打开仓库

栏中的 GIT 按钮会跳到收藏的项目;右键则给出列表:已知的仓库、“提交…”、“历史…”、各分支、“贮藏…”和“贮藏”、“标签…”、“远程仓库”。磁盘上尚不是仓库的文件夹,会在其中提供“在此克隆仓库…”。项目在进入时会自动加入,文件夹已消失的项目会被遗忘——除非缺失的是它所在的磁盘,因为拔掉的 U 盘不该让人忘掉任何东西。

文件夹的状态

每一行都有自己的颜色:有冲突、未跟踪、已修改、已暂存、已忽略。git 从两个维度描述一个文件——索引和工作副本——而一行无法同时显示两者:决定颜色的是还剩下什么要做。面包屑导航显示当前分支。

暂存与提交

“提交…”会打开更改视图:每行一个文件,已跟踪列说明 git 对它的了解。选择行的方式与其他地方一样——单击、Ctrl+单击、Shift+单击——在底部写下说明,然后点击提交,所选内容就会提交。没有选中任何内容,就什么也不会提交:按钮会告诉您。

提交栏中的未跟踪按钮可隐藏 git 未跟踪的内容:满是临时文件的文件夹不再淹没想要提交的那两个文件,Ctrl+A 也不会再把它们带上。取消勾选时,它会显示隐藏了多少个。

仓库的更改视图:三个文件、它们的跟踪状态,以及底部的提交栏。
仓库的更改和提交栏:说明、所选内容,以及按钮。

显示差异

“显示差异”会逐块打开 diff,在工作副本、索引(已暂存)和某个提交之间——之前与之后在其中都有标明。遇到二进制文件,它会直接告知,而不是给出一堆乱码。

可用的操作

分支与历史

创建分支、切换到它、合并——菜单项带有分支的名称,并回应无需合并:已是最新或合并已中断:有文件存在冲突。“历史…”列出提交:短哈希、主题、作者、日期。左侧的边栏绘制分支图,每一行各占一条线,合并会向相邻的列画一条线。双击会打开提交的详情:完整的说明,以及它触及的文件。

仓库的历史:四个提交、它们的主题和作者,以及侧栏中的分支图。
历史及其侧栏中的图:从同一个根出发的两个分支,以及把它们汇合起来的合并。

合并请求树

GIT 按钮菜单中的“合并请求树…”会绘制远程仓库所指 GitLab 项目中所有打开的 MR。每个 MR 排在其起始分支之下,像目录一样每级缩进一格:层级表示批准的先后顺序,点击卡片即可在浏览器中打开 MR。

仓库的合并请求树:main、缩进排列的 MR,以及三个相互派生的 MR 链
!31 派生自 !28,!35 派生自 !31:每个 MR 都排在其所含提交的 MR 之下,并标有“在…之后”和“目标 main”。右侧按钮可检出该分支;勾号表示当前所在的 main。

与远程仓库交换

“拉取”和“推送”,标签旁边显示涉及的提交数——零不会显示。对面尚不存在的分支,会连同其上游一起推送。远程仓库可在同一个菜单中声明和移除。当服务器要求验证身份时,Meneaufile 也会向您询问,而不是不声不响地卡住。

暂存起来

“贮藏…”把进行中的工作收起来而不提交,可附带说明;“贮藏”——已贮藏的工作——列出等待中的内容,可以从中恢复或丢弃。“标签…”同样用来添加和移除标签。

这一行是谁写的

文件菜单中的“逐行溯源”会把每一行归到它的提交和作者。面对一行令人意外的代码时,人们会问这个问题,而提交列表回答不了它。

冲突

有冲突的文件会以它的各个版本打开:共同版本、我方、对方,以及您正在构建的结果。“全部采用”会整体采纳某一侧,“解决”会保存——文件随即离开有冲突这一类别。

克隆

从某个文件夹:填写地址(https://… 或 git@host:org/repo.git)、要创建的文件夹名称,以及完整的历史或浅克隆——最近 N 个提交。

Bundle 文件

.bundle 文件是打包成单个文件的 Git 仓库:无需服务器,就能把项目装进 U 盘带走,或交给别人。双击会显示其中包含的内容——它的分支、它的标签;在此克隆…则在它旁边把它变成一个普通仓库,无需网络。在仓库中,GIT 菜单里的创建 bundle…会把整个仓库打包到另一个视图的文件夹中。

如果缺少 git

Meneaufile 调用系统中的 git。如果它不存在或不在 PATH 中,Meneaufile 会说明,而不是无缘无故地失败。

Meneaufile 手册,简体中文版。