介绍

a fast and friendly git client for Mac and Windows
一个快速且友好的 Git 客户端,支持 Mac 与 Windows

Sourcetree 是一款同时支持 macOS 与 Windows 的免费 Git 客户端:

这里主要介绍 Fork 相对于 Sourcetree 的优点。

符合直觉的优点

差异显示

  • Sourcetree 显示的差异与 git diff 输出一致,在显示修改时只能显示删除一行增加一行。
  • Fork 显示的差异与 GitHub 一致,可以在删除一行与增加一行中高亮显示出变化的部分。

其实这个功能看起来很小,实际上非常重要,极大地降低了查看差异浪费的脑力。样例:

撤消改动

在给非程序员培训使用 Sourcetree 时,一句话总结如何撤消改动:只有新增的绿色标识文件使用 删除 功能,其他的都使用 重置 功能。

Fork 中删除文件与重置文件改动统一为 Discard Changes,而且只可以在未提交的区域中执行此操作;在暂存区中只可以将文件移动到未提交的区域。

修订提交

提交时使用 Amend 选项修改上一次提交时,会将上一次提交改动的所有文件放在 Stage 区域中,方便从中添加、删除或修改文件。

贮藏

git stash 默认的行为并不会添加未追踪的文件,而 Fork 的 Stash 功能会自动 git add . 后再 git stash,这其实是符合直觉的。

其他优点

跨平台

  • macOS 客户端使用 Swift + Cocoa 编写,性能非常好,与 Sourcetree macOS 客户端速度无差异。
  • Windows 客户端使用 .NET + WPF 编写,速度不是很快,与 Sourcetree Windows 客户端差不多,因为后者也是使用相同的方案编写的。

比较两个平台的界面,几乎没有多少差异,用起来不会像 Sourcetree 不同操作系统版本相差太大而感到割裂。

提交树显示

提交树的结点本身并未占据很大空间,并且不像 Sourcetree 一样预留空间,而是动态的。因此提交标题紧挨着提交结点的图。

文件树

这里终于把 Git 快照的概念展现出来了,可以查看任何一次提交对应的仓库所有文件内容。

缺点

搜索文件

Sourcetree 中 文件状态 右上角有搜索框,可以按文件名搜索文件。

排序与筛选

Sourcetree 中可以轻易地排序与筛选要提交的文件,例如:按路径排序、按文件名排序,筛选待定、未提交文件、已修改的文件等等。

其他文章