仓库与历史

提交图

分支、合并以及章鱼式合并都被规规矩矩地画了出来,浅色深色皆可。渲染是按窗口进行的,所以一个有十万个提交的仓库,滚动起来和只有一百个提交的一样顺。

提交图,浅色 提交图,深色

四处走动

  • ↑ ↓(或 j k)移动选中项。
  • ⌘/Ctrl+点击把一个提交加入或移出多选;⇧+点击选取一个区间。选中若干个之后右键,即可把它们拣选(cherry-pick)到当前分支上、把连续的一段压缩成一个、导出一份合并后的补丁,或者复制它们的 SHA。
  • 在你最近一次获取或拉取中到达的提交会被标为新提交。尚未进入当前检出分支的那些会 略微半透明,直到一次拉取把它们带进来。
  • 右键一个提交,可以看到修补、撤销、重置到此提交…和在 GitHub 上查看,外加检出、拣选、还原、建分支、打标签和复制。不安全的操作保持可见,但会被禁用。

让它只显示你想看的

  • 提交图聚焦决定画出多少历史——设置 → 主题 → 提交图,或提交图表头的齿轮 菜单。全部画出所有内容;线性历史(第一父提交)只留下主干;隐藏已合并分支 保留主干加上尚未合并的分支;独奏模式保留你的分支、加星的分支和默认分支。

    它只过滤日志已经加载的内容。隐藏已合并分支依赖 git 自己对“是否已包含在当前 分支”的判断,所以切换分支会改变隐藏的内容——而且它会保留仍被标签或它认不出的 引用指向的每个提交,这正是被删除的分支留下的东西。线性历史和独奏模式更粗 暴:位于它们隐藏的提交上的标签或贮藏会一起消失。

  • 按路径筛选:右键点击一个文件或文件夹 → 按此路径筛选图,于是只有改动过它的提交还亮着。

被筛选到只剩一条路径的图

  • 列:分支、消息、作者、日期、SHA、签名和部署这几列都可以显示、隐藏、调整宽度和重新排序。
  • 样式:设置 → 主题 → 图——泳道配色(8 套内置、自定义,或由 AI 生成)、拐角样式、行密度和线条粗细,并带一个实时的迷你图预览。

带实时预览的图样式设置

贮藏放在哪

贮藏画成单独一行,用虚线支线挂在取出它的那次提交上,以免挤开主干。它落在该 父提交正上方那一行,而不是自己的时间戳会占到的位置。

标记是点线框里的归档盒——和贮藏列表、命令面板、详情标题用的同一个归档符号,让 图用应用其余地方一样的叫法。点线框把它和提交分开:坐在父提交上一行,形状必须 带上「这不是分支的一部分」。

贮藏几乎总比它所在的提交更新,按时间排会把它漂到无关提交中间,并把连线拉过半 张图。父提交才是贮藏真正相关的那一行,所以它挨着那一行。

限度:父提交不在已加载窗口里的贮藏——被裁掉,或在日志末尾之外——没有锚点,会退 回按时间排序,直到父提交载入。线性历史和独奏模式会连同它们丢掉的父提交一 起丢掉贮藏,如上所述。

提交详情

选中一个提交会显示它改动的文件(按树状或平铺)、作者、SHA、共同作者,以及它的签名。 文件列表上方的标题按类型拆开数量,颜色和行上的状态符号一样。把鼠标放上去能看到普通的总数。#123 引用和 @mentions 会自动链接到你的托管方。

文件列表可以用惯常的手势多选(⌘/Ctrl+点击、⇧+点击、⇧+↑/↓)。在选中项上右键 → 将 {n} 个文件恢复到工作树,会拿到这些文件在该提交时的原样:一次确认后覆盖工作副本,不动 HEAD,也不动索引。

逐个查看提交详情

另请参阅: 追溯与文件历史 · 搜索 · 时光机

在 GitHub 上改进这份翻译