Tower 2.0 来了 – 让 Git 更简单!

Avatar of Tobias Günther
Tobias Günther

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

大多数人不会把版本控制称为他们的爱好。但在过去几年里,人们也意识到了它的价值。如今,你找不到一个不使用版本控制的顶级程序员、网页开发人员或网页设计师。部分原因在于它可以帮助你获得更好的结果并简化协作。但也因为它可以在事情出错时拯救你的工作。

当我们在 2010 年开始创建 Tower 时,我们的目标非常明确:使 Git(最好的版本控制系统)更易于使用。从那时起,我们已经为超过 35,000 位客户(包括 Apple、Google、Amazon 和 Ebay 等公司)做到了这一点。

当我们开始开发 Tower 的第 2 版时,我们知道这是一个更进一步的机会:让 Git 不仅更容易使用,而且真正简单易用。

如何自信地解决冲突

合并冲突一直让我害怕。特别是因为我是一个“不太技术性”的人。我从未真正理解发生了什么——更重要的是,我该如何解决它。

我对冲突的主要问题之一是,这种情况非常抽象且难以理解。这就是为什么我们在 Tower 2 中引入了一种可视化的方式来解决冲突。

因此,我现在可以更轻松地理解情况——通过清楚地看到哪些文件发生了冲突,它们的确切外观,谁处理了它们以及哪个提交引入了这些更改。然后,我可以决定解决方案的外观——只需点击我想要在最终结果中包含的文件即可。

如何立即克隆存储库

我不喜欢克隆存储库。因为,虽然它实际上是一个简单的过程,但它也是一个乏味的过程:首先,我必须登录到 GitHub、Bitbucket 或 Beanstalk 上的服务帐户。麻烦就从那里开始:好像笨拙地处理用户名和密码还不够,新的身份验证程序现在需要在你的手机上创建密码、生成个人访问令牌或跳过各种其他障碍。之后,我必须找到我的存储库并复制正确的 URL——必须从 ssh、https 或 git URL 等各种选项中进行选择。

Tower 2 中的新服务帐户管理器允许我一次配置我在 GitHub、Bitbucket 和 Beanstalk 上的帐户——然后再也不用处理身份验证和存储库 URL 了

我现在可以在这些帐户中获得所有存储库的整洁列表。我可以只需单击一下即可将存储库克隆到我的本地机器。或者,直接在 Tower 中在帐户中创建一个新的存储库。

最重要的是:我再也不用与用户名、密码、令牌或 URL 搏斗了。

如何了解项目中发生了什么

任何项目都是以小步骤发展起来的。如果我想跟上项目,我需要理解的就是这些小步骤。因此,对我来说至关重要的是,我能够以一种易于理解的方式获得我需要的所有信息。在 Tower 的新版本中,我们对所有历史记录都投入了相当多的精力。

你可以看到从远程拉取时收到的提交——这样你就可以清楚地了解最终执行拉取操作时会发生什么。

你可以选择多种不同的视图样式——这样你就可以获得最适合你的可视化效果。

你可以直接访问提交的文件树——这样你就可以在任何时间点检查项目的所有文件。

最后,搜索功能现在支持文件路径——这样你就可以轻松地查看更改了特定文件的提交。

如何撤消错误

我对错误的态度发生了变化——尽管我犯的错误和以前一样多。发生变化的是,我不再像以前那样害怕它们。过去,我对在项目上进行较大更改或尝试新事物犹豫不决。因为我知道如果发生错误,很难从错误中恢复。

使用 Git 一段时间后,我开始理解我可以撤消所有操作。Git 的撤消功能允许你从任何错误中恢复——但相应的命令分散在整个系统中。

在 Tower 中,我们使这些功能非常容易使用:我可以修复我的最后一个提交、恢复任何历史版本、撤消特定提交的影响或丢弃工作副本中的本地更改。知道我不会搞砸真是太好了。

如何创建有意义的提交

当我开始使用 Subversion 进行版本控制时,我基本上滥用它作为备份系统:我把所有更改都塞进一个提交中,以确保它们安全地存储在存储库中。因此,我的提交消息是这样的

修复了错误 #312,实现了登录功能,重构了导航。哦,顺便说一下,还更改了其他所有内容……

当队友(甚至我自己)查看这个臃肿的提交时,我们谁也不知道到底发生了什么。

那时我还没有理解版本控制。公平地说,我当时也没有合适的工具。使用 Git,我了解到浏览项目的提交历史应该能够让你看到项目是如何演变的。但这只有在一个条件下才能奏效:只有相关的更改应该一起提交。

例如,修复两个不同的错误应该产生两个单独的提交。小的提交使其他开发人员更容易理解更改并在出现问题时回滚它们。

Git 使用“暂存区”等工具帮助创建此类粒度提交:它强迫我真正制作提交并确定我确切要包含哪些更改。我甚至可以在更改的单行级别上决定此修改是否应包含在下一个提交中。

但是,特别是像后者这样的操作在命令行上使用起来相当笨拙。这就是 Tower 发挥作用的地方,它使用简洁的界面使这些强大的功能易于访问。

如何优化你的工作流程

使用 Git 可能很复杂。但是,通过使用它而获得的质量、信心和可靠性的提高绝对值得付出努力。减少这种努力正是我们想要通过 Tower 2 做到的。我们希望使使用 Git 更快更容易。让我们来看一些 Tower 中体现这一点的例子。

  • 你无需手动下载项目的新的更改。相反,Tower 现在会在后台自动定期执行“获取”操作。这样,你就可以立即知道远程服务器上是否有新内容可用。
  • 当你切换分支、拉取或变基时,应用程序会自动将你当前的更改保存到 Stash(一种剪贴板)。最好使用干净的工作副本执行此类操作——而 Tower 可以帮助你免除记住和执行此操作的麻烦。
  • 新的“快速打开”对话框允许你在几秒钟内找到并打开任何项目。在键入项目名称的几个字符后,Tower 将为你提供任何匹配的存储库。
  • 我们使提交速度更快。提交消息的 UI 现在已整洁地集成到主界面中;只需按住 ALT 键即可修改提交。
  • 根据大众需求,我们已将“git-flow”工作流程集成到 Tower 中。git-flow 粉丝现在可以直接在 Tower 中使用它。
  • 你可以在 Tower 中使用拖放来非常简单地完成相当复杂的 Git 任务:从创建和合并分支到挑选提交或应用甚至 Stash 的部分内容。

我们在 Tower 2 中实现了相当多的新功能。但最重要的是,我们专注于易用性:我们相信,一个好的工具应该可以轻松地帮助你成为一名更好的专业人士。