现在,使用 Git 进行版本控制已成为一种“商品”:几乎所有软件项目如今都使用 Git,几乎所有开发人员都在一定程度上了解 Git。这解释了为什么当我谈论我的工作时,有时会听到以下问题:“一个 Git 桌面客户端?为什么我需要它?我可以在命令行上做到这一点!“
如果幸运的话,当遇到这个问题时,我旁边会有一台电脑。而且,与其给出冗长的答案,我更愿意在 Tower,我们的 Git 桌面客户端 中做几件事。
任何曾经执行过“交互式变基”的人都会对它在 Tower 中有多么容易感到惊讶:你只需拖放即可合并提交或重新排序它们。而任何还没有使用过“交互式变基”的人——因为在命令行上使用起来太复杂和笨拙——现在都明白它是一个非常有用的工具。
或者,我可能会犯错:意外删除分支或以可怕的方式弄乱合并。然后我会像在文本编辑器中一样简单地按下 CMD+Z 来撤消我刚做的乱七八糟的事情。
人们随后开始意识到真正的问题不是:“我能否勉强使用命令行上的 Git?” 更多重要的问题是
- 我能否使用 Git 的所有功能?(即使是那些可能难以使用但非常有价值的先进功能……)
- 我能否以高效的方式使用 Git?(不必查找参数,不必花费太多时间在工作流程上……)
- 我能否以轻松的方式使用 Git?(无需过多思考……)
我们——一个只有 9 人的小团队——在过去的 10 年里通过构建 Tower 来回答这些问题。
如何撤消错误
Git 最强大的功能之一是它允许你撤消几乎所有操作。但是,要确切地知道如何撤消你特定类型的混乱,需要相当多的经验:失败的合并必须与删除的分支以不同的方式清理!
在长时间研究之后,Tower 现在允许你通过简单地按下 CMD+Z 来撤消几乎所有操作!(注意:“撤消”功能是最近才添加的,并且首先在 Tower 的 Mac 版本中可用。它很快也会出现在 Windows 上)。
无论你是否搞乱了合并、意外删除了分支、丢弃了宝贵的本地更改、过早地在远程上发布了分支,还是只是提交了一些不应该提交的东西——你的救星就是简单如“CMD+Z”一样,而且它始终可用。
交互式变基的力量
交互式变基是 Git 强大功能的一个很好的例子。它允许你……
- 编辑旧提交(它们的提交消息以及它们的更改集!)
- 将多个提交合并为一个
- 重新排序提交
- ……甚至删除不再需要的提交!
所有这些都有助于保持代码库的整洁和结构化。但由于它是一个非常强大的工具,交互式变基也是一个使用起来相当复杂的 Git 功能的例子!
许多初学者被这种复杂性吓退了——这意味着他们当然会错过该功能的好处!许多经验丰富的开发人员知道并使用交互式变基;但由于该功能难以使用,因此会花费他们大量时间,或者他们会不时地犯错。
考虑到这一点,我们在将交互式变基集成到 Tower 中时有两个目标:一方面,我们希望尽可能减少它的复杂性。另一方面,我们希望使该功能易于访问。
结果是,交互式变基现在直接集成到“提交历史记录”中,可以通过简单的拖放和菜单选项访问。
无数在命令行上根本不会使用交互式变基的开发人员现在在 Tower 中每天都在使用它。
快速操作
几乎与大小无关,在代码库中工作意味着要花费大量时间搜索:例如,在大量分支中搜索某个分支,或在大量文件中搜索某个文件。
Tower 允许你完成大多数日常任务,而无需筛选数据——甚至无需将手从键盘上移开。 “快速操作”对话框几乎可以接受任何输入,并允许你简单地对其进行操作
- 输入分支名称,它将提供执行签出的选项。
- 输入文件名,它将提供在文件历史记录中显示它的选项。
- 输入提交哈希值,它将提供显示该提交详细信息的选项。
能够直接从键盘执行许多任务,而无需搜索和筛选大量数据,可以使开发人员的生活变得更加轻松。
自信地解决冲突
每个人都讨厌合并(或变基)停止并留下大量冲突的时刻😱 这时,许多问题会迅速进入可怜的程序员的脑海
- 哪些是我的更改?哪些是别人的?
- 实际上发生了什么?
- 为什么是我?
虽然 Tower 无法回答所有这些问题,但它提供了一个特殊的“冲突向导”,可以帮助使情况更容易理解。
你可以轻松地看到更改来自哪里,并且可以通过简单地选择要使用哪个版本来解决冲突(或跳入专用的合并工具)。当以这种方式可视化合并冲突时,事情会变得容易得多,而不是像抽象混乱一样。
提高工作效率
在构建和改进 Tower 时,我们始终努力让用户更轻松——并使他们更高效。以下是一些在 Tower 中体现这一点的例子
- 不再需要密码、令牌、SSH 密钥:你可以轻松地将你的 GitHub / GitLab / Bitbucket / Azure DevOps 帐户连接到 Tower。连接后,你将不再需要与密码、身份验证、令牌、用户名和 SSH 密钥作斗争。然后,克隆和与远程存储库进行交互将只需单击一下。
- 单行暂存和丢弃:版本控制中有一个黄金法则:当你进行提交时,你应该只包含来自单个主题的更改(并且不要在提交中混合多个主题,这将使理解实际上发生了什么变得极其困难)。借助能够对更改的各个块和行进行暂存/取消暂存/丢弃的能力,Tower 使你能够创建细粒度、精确的提交。
- 新的差异查看器:在最近的更新中,我们对内部差异查看器进行了全面改造。它现在突出显示内联更改,允许你显示/隐藏空白更改,可以显示完整的文件,并且可以完全使用主题进行自定义!
- 针对繁琐工作的自动化:Tower 会处理围绕 Git 的许多繁琐工作。举两个例子:你无需定期从远程获取新更新,也不需要记住在拉取/切换分支/合并之前暂存未提交的更改……Tower 会自动为你完成这些操作。
当我想到自己使用的最喜欢的应用程序时,它们都有几个共同点:它们让我的生活更轻松,让我的工作效率更高,并使我能够完成没有它们很难完成的高级操作。我很高兴并且感谢许多用户将 Tower 视为他们最喜欢的应用程序之一!

如果你想尝试 Tower,只需从我们的网站上下载并免费试用 30 天。如果你是一名学生或老师,你还可以免费使用 Tower!
看到微软被列在使用它的公司中有点奇怪。你们公司自己制作的客户端不够好吗?