Git 是一款命令行驱动的软件,但这并不意味着您必须使用命令行才能使其工作。有很多选择!我认识的一些最资深的程序员喜欢使用 Git 的 GUI(图形用户界面,或者您可以看到内容并点击内容的软件),而我认识的一些几乎纯粹的设计师更喜欢使用 Git 的命令行。发誓要使用 Git。
用户界面,或者您知道,您可以看到内容并点击内容的软件),而我认识的一些几乎纯粹的设计师更喜欢使用 Git 的命令行。发誓要使用 Git。
让我来总结一下目前 Git GUI 的主要参与者。
无论您多么热爱 CLI,都不要对 GUI 产生偏见。许多非常棒的程序员喜欢使用 GUI,这完全没问题。
围绕命令行存在一些奇怪的守门员倾向。 #DevDiscuss
— Ben Halpern 🤗 (@bendhalpern) 2018 年 11 月 28 日
Tower
我使用了 Tower 很长时间,它是使用最多的一个。我不确定所有这些的准确发布日期,但我觉得 Tower 是早期参与者之一。它们已经存在很长时间,并且不断改进,我一直对此表示尊重。


Fork
它是免费的并且积极开发,令人难以置信。


GitHub Desktop
这是原始 GitHub Desktop 的 2.0 版本。我对 1.0 版本有一些抱怨,因为它的术语很奇怪(对我来说)并且似乎与 Git 大相径庭,这比它值得的更令人困惑(同样,对我来说)。此版本清理了大部分内容。它与 GitHub 深度集成,因此它使 GitHub 式的功能(例如拉取请求)感觉像是一等公民,但它仍然可以愉快地与任何 Git 存储库一起使用。


GitKraken
我对这个很感兴趣。升级(每月费用)以获取应用内合并冲突工具似乎值得,但您也必须升级才能访问私有存储库。它似乎功能非常丰富,但我认为我最喜欢的是深色带彩虹色调的主题。


Sourcetree
如果您是 Bitbucket 的大量用户,您可能会被 Sourcetree 吸引,因为它们都是 Atlassian 产品。我知道它适用于任何 Git 存储库。我想与此类似,GitHub/GitHub Desktop 连接具有一些流畅的 Bitbucket 集成功能。


Coda
您不会真的将 Coda 视为版本控制工具(它更像是直接到 FTP 的工具),即使我认为它对它的支持相当不成熟,但它确实有效!似乎 Coda 的下一个版本 将解决此问题。


VS Code
对我来说,像这样直接在您的 IDE 中拥有版本控制,感觉有点像 GUI 和 CLI 之间的中间状态。这里有很多功能,但对我来说它并不是一个完整的 GUI,但您内置了一个终端,因此它几乎鼓励这样做。许多 Git 使用都是非常基本的拉取、提交和推送——因此在应用程序中直接拥有此功能非常棒。
(我想还有很多其他提供版本控制功能的 IDE。例如 PHPStorm。)


Atom
我不太清楚 Atom 应该如何使用。它当然很受欢迎,但 Atom 是 GitHub 的产品,现在 Microsoft 拥有 GitHub,而 Microsoft 拥有 VS Code,它是具有更多动力的直接竞争对手。此外,GitHub 还有 GitHub Desktop,它似乎也具有发展势头。尽管如此,嘿,这是一个很棒的集成,如果您喜欢它,您就喜欢它。


Sublime Merge
来自 Sublime Text 的开发者!与 Sublime Text 一样,您可以永久免费使用它,但在这种情况下,目前,如果您想要深色主题,则需要付费。


Gitbox
看起来上次更新是在 7 年前,但它也获得了极好的评价。看起来您无法在应用程序本身中查看代码差异,这有点奇怪(“查看差异”功能对我来说不起作用)。但在其他功能方面,对我来说似乎运行良好。


TortoiseGit
这里仅限 Windows,所以我无法提供任何简短的评论,但他们在 这里提供了大量屏幕截图。


SmartGit
跨平台,并且看起来功能非常齐全(甚至包括用于冲突的文件合并工具)。我作为 UI 挑剔者,看到它时有点皱眉头。


GitUp
看起来它非常注重 Git 分支的可视化图形,并让你能够控制所有节点以及如何操作它们。我将在这里嵌入他们的演示视频,展示所有这些功能。
Git Extensions
这里只支持 Windows,所以我无法给出任何简短的评论,但有几个人提到了它,所以我觉得它很有潜力。在 GitHub 上的 4000 多颗星(它是开源的!)也非常酷。


你考虑过 Sublime Merge 吗? https://merge.sublime.net.cn/
也想要提一下 Sublime Merge。它是一个很棒的小工具,并与 Sublime 集成得很好。
我也在使用 Sublime Merge。在多年零星尝试不同的 GUI 并几乎立即放弃(因为它们都太复杂了)之后,Sublime Merge 令人耳目一新地简单,而且它极大地提高了我的提交质量,因为“只取几行代码”放到一个单独的提交中不再是一段令人厌烦的命令行旅程。
我用了很长时间在 Mac 上使用 GitBox,但最近它开始经常崩溃。自 2012 年以来就没有更新过,所以我被迫寻找替代方案。到目前为止,还没有什么能与之匹敌,这让我很难过。:(
在我看来,TortoiseGit 也是一个非常棒的 GUI。真正让我觉得有趣的是,它完全基于 Windows 的上下文菜单,所以非常棒。只需在项目目录下右键单击,你就可以访问几乎所有(如果不是全部)Git 提供的功能。设计本身不是最好的,但它简单易懂。
我无法相信你没有将 SmartGit 包含在这个列表中,这太可惜了,因为它是市场上功能最全面的 Git GUI 之一,并提供了最好的“git 子模块”工作流程。它可能不如其他一些 GUI 漂亮,但它可能是最好的 Git 客户端。
而且我无法相信你包含了 Fork,它是一个由一对夫妇在业余时间开发的非常棒的小型 GUI。它漂亮、简约但功能强大,而且免费使用。还有什么不喜欢的呢。
你是说你相信 Fork 被添加了吗?它绝对是我迄今为止使用过的最好的 GUI。
Gitup 速度很快。 https://gitup.co
Sublime Merge 怎么样?
我认为 Git extension 永远是最好的!!
https://gitextensions.github.io/
它还会显示你执行的操作所使用的所有 Git 命令。
没错,它是 Windows 上最好的 Git 客户端。我总是惊讶于它通常会被这些 Git 客户端对比文章忽略。
当然,Atom 也有集成。但是,嘿,vim FTW ;)
我知道它是用于设计文件而不是开发工具,但可以将 Abstract 作为一个体面的版本控制界面: https://www.abstract.com/
Sourcetree 真的有很多 bug,开发团队在测试和修复 bug 方面真的很糟糕,而且总是热衷于添加更多功能。它从未稳定过,永远不会……
我喜欢 Tower。每天都在工作中使用它 :)
不要忘记 Atom,来自 Github 的文本编辑器。它具有 Git GUI 工具,包括用于交互式提交、合并冲突解决和交互式变基的超级有用功能,并带有完整的差异预览。我 90% 的工作流程都在 CLI 中完成,其余的则使用 Atom。
有些人不喜欢 Atom,这很公平……但它对 Git 来说很方便。
扩展程序怎么样?比如 VSCode 的 GitLens?
GitExtension 是我 14 年经验中使用过的最古老、最棒的工具之一。
跨平台、小巧、简洁等。
谢谢!刚接触 Git GUI,所以我张开双臂欢迎这篇文章。
任何还没有尝试过 GitKraken 的人都应该试试。它提供了你对 Git GUI 的所有期望,此外,其冲突解决工具一流,交互式变基 UI 很棒,它会定期更新,而且开发人员对反馈和功能请求非常有反应。
我认为 Git GUI 最被低估的功能之一是能够立即查看整个仓库的树状视图,这确实使理解合并或分支将如何影响仓库变得更加直观(在我看来)。
就我个人而言,我经常使用 Source Tree 进行更复杂的操作(大型变基、多个分支合并等),因为它是在少数几个具有此类功能(带有智能默认参数)以及原生 GitHub Enterprise 支持的 GUI 之一。但如上所述,它可能有点 buggy(尤其是在 Windows 上)。
最近,我一直在使用 VS Code 以及 git graph 扩展,因为它功能非常齐全,并且可以在我工作的地方立即使用。
我使用 SmartGit (http://www.syntevo.com/smartgit/),我非常满意。
我认为值得指出的是,Mac 版的 Sourcetree 看起来比这篇文章中的截图(Windows 上的)漂亮得多,而且它还带有深色主题。
我有点晚才加入,但我想提一下,在阅读了这篇文章后,我从 SourceTree 切换到了 Fork。它们非常相似,但我发现 Fork 的交互式变基更直观,并且整个应用程序速度快得多,bug 也少得多。