目录
1. 简介
我一直相信GUI工具,并且是它们的忠实粉丝。我觉得它们提高了我的工作效率,一个漂亮的图形演示可以更好地了解感兴趣的问题/事项。随着工具和语言数量的不断增加,普通软件工程师每天都要面对,记住所有命令行命令及其众多选项变得非常困难。
但是,还有另一种思想流派,在程序员中也非常多地提出,他们喜欢从命令行做所有事情。这些“大师”喜欢从命令行运行Git。这篇文章不适合他们。
在本文中,我们将概述当今可用的免费Git Gui应用程序。我们只专注于完全免费的完整版本工具,可以在非商业和商业环境中免费运行。如果一个软件工程师在家里投入时间和精力来学习和培养技能,而这些工具只在非商业环境中是免费的,然后在他的工作场所发现该公司不打算购买该特定工具,那就是浪费时间和精力。此外,我们不会研究免费提供某些有限功能版本的工具,而是要钱购买功能齐全的版本。幸运的是,对于Git,有许多免费提供的质量工具。
1.1. 测试的工具
以下是引起我们注意的免费 Git Gui 工具列表:
- SourceTree(Sourcetree | Free Git GUI for Mac and Windows)
- GitHub Desktop(GitHub Desktop | Simple collaboration from your desktop)
- Git Extensions(Git Extensions | Git Extensions is a standalone UI tool for managing Git repositories)
- MeGit/EGit(GitHub - eclipsesource/megit: Standalone Git GUI based on EGit)
- Guitar(GitHub - soramimi/Guitar: Git GUI Client)
- TortoiseGit(TortoiseGit – Windows Shell Interface to Git)
1.2. 测试方法
我们假设读者在Git中有一些中级技能,不会解释Git术语和概念。我们将只展示GUI工具的功能。我们将在以下环境中测试所有工具:
- BitBucket Cloud(Bitbucket | Git solution for teams using Jira )作为Git远程存储库
- 作为本地存储库的小型本地Windows项目
2. SourceTree
2.1. 详情
- 产品:SourceTree
- 公司: 阿特拉斯[3]
- 网站: Sourcetree | Free Git GUI for Mac and Windows
- 平台: Windows,Mac
- 许可证:根据[4],完整版完全免费用于非商业和商业用途
2.2. 概述
这是屏幕截图。
主面板是“分支/历史记录”面板:
您可以清楚地看到“暂存文件/未暂存文件/提交”按钮:
一个简单的集成查看器用于显示冲突文件/合并面板:
将列出存储,可以选择和查看。存储面板:
Blame逐行显示有关文件更改的非常简单的信息。Blame面板:
该工具支持集成的“创建拉取请求”菜单选项,该选项可在Web浏览器中打开BitBucket页面:
可以清楚地看到提交详细信息、父节点、作者和日期:
2.3. 印象
- 非常好的图形界面。运行平稳。稳定。用户界面中的信息量和易用性之间的良好平衡。
- 大公司Atlassian支持它,因此它是一个维护良好的应用程序。
- 许多不错的功能。与BitBucket Cloud集成良好,尽管这也是Atlassian产品。
3. GitHub Desktop
3.1. 详情
- 产品: GitHub Desktop
- 公司: GitHub/微软
- 网站: GitHub Desktop | Simple collaboration from your desktop
- 平台: Windows,Mac
- 许可证:根据[5],完整版完全免费用于非商业和商业用途
- 注意:尽管被称为“GitHub Desktop”,但它可以与其他Git服务一起使用。我们用BitBucket Cloud测试了它。
3.2. 概述
这是屏幕截图。
在主面板中,您可以看到分支列表并选择当前分支。当时只能看到一个分支:
修改后的文件/提交按钮表单很简单。不列出工作文件与暂存文件:
“存储”面板显示隐藏的文件。同样,非常简单的形式:
冲突文件/合并面板需要使用外部工具来解决冲突:
3.3. 印象
- 我们没有看到可以呈现暂存文件与非暂存文件
- 似乎只有存储是可能的,它要求在添加第二个存储时覆盖现有的存储
- 没看到怎么Blame
- 没有看到如何获取有关提交详细信息的详细信息
- “拉取请求”显示为灰色,可能是因为我们将其与BitBucket Cloud一起使用。没有看到如何为GitHub以外的其他帐户输入凭据。不过,当我输入BitBucket凭据时,拉取/推送工作正常。
- 检测冲突并提供打开您选择的应用程序以进行文件合并。没有自己的冲突查看器。
- 当时没有看到以图形方式呈现多个分支的方法。
- 通常,GUI选项的版本比以前的工具要谦逊得多。
- 考虑到微软以75亿美元的价格收购了GitHub [7],我对这个工具的功能/选项如此谦虚感到惊讶。它在功能/图形表示方面不如我们在这里测试的几个应用程序。
4. Git Extensions
4.1. 详情
- 产品:Git Extensions
- 公司:开源
- 网站: Git Extensions | Git Extensions is a standalone UI tool for managing Git repositories
- 平台: Windows,Linux
- 许可证:根据[6],它是开源的,完整版完全免费用于非商业和商业用途
4.2. 概述
以下是屏幕截图:
非常漂亮的主面板显示分支/历史记录面板:
暂存文件/未暂存文件(工作目录)显示为当前提交顶部的节点:
暂存文件/未暂存文件/提交对话框提供即将提交的文件的清晰视图:
“提交详细信息”面板显示了有关所选提交的许多详细信息:
“存储”面板显示存储及其所在的分支:
Blame面板有点复杂。下半部分是经典的Blame功能,而上半部分面板显示Branch中与文件/下半部分面板中所选行对应的提交位置:
创建拉取请求菜单选项(不适用于BitBacket)仅适用于GitHub:
4.3. 印象
- 令人惊讶的是,该应用程序有多少选项和功能。丰富的图形界面,具有许多选项。
- 它在启动时提出了太多问题,他们需要提供默认值,即使是简单的默认值。关于配置差异工具和标记工具的问题困扰着我。他们应该将默认值作为notepad.exe,以便以后用户可以放置其他内容。
- 我尝试了30分钟来配置正确的合并工具,但仍然不起作用。只是行不通。最简单的工具应该作为默认安装,因为这样你就只能进行配置。
- 许多选择效果很好,而且很花哨。它被设想为知道自己在做什么的“专家工具”。对于初学者用户来说,这是一个有点复杂的UI。
- 出于某种原因,它在我的项目目录中创建了一些“备份”文件,例如“Doc4.txt.orig”。并将它们添加到git项目中。我很失望,因为它以这种方式损坏了我的存储库,这违背了它的基本目的。也许它误导我单击错误的内容来接受该提交,但我只是不知道该文件在存储库中是如何完成的。
- 它在渲染对话框方面存在一些问题,您需要调整它们的大小才能很好地查看内容。
- 如果您喜欢具有许多高级功能的工具,非常了解Git,并且喜欢研究不同的选项,那么您会喜欢它。但是,我的总体印象是它不够成熟,有点不稳定,对于日常工作来说可能会很烦人。
5. MeGit/EGit
5.1. 详情
- 产品: MeGit/EGit
- 公司:开源/Eclipse许可证
- 网站: GitHub - eclipsesource/megit: Standalone Git GUI based on EGit
- 平台:Windows,Linux,Mac
- 许可证:根据[8],它是开源的,完整版完全免费用于非商业和商业用途
5.2. 概述
以下是屏幕截图:
非常漂亮的分支/历史记录面板:
一个非常漂亮和干净的表单,显示暂存文件/未暂存文件/提交按钮:
包含所有所需信息的“提交详细信息”面板:
通过“存储”面板,可以清晰地查看所有存储,包括进行存储的提交位置。文件差异会立即显示,显示存储的变化。
“Blame”面板显示高级信息。它指向进行更改的提交的位置以及进行更改的分支。它还会立即显示该提交的文件差异:
“冲突文件/合并”面板提供了一个集成的文件比较工具来显示/启用更改。非暂存文件与暂存文件的清晰视图也:
5.3. 印象
- MeGit [8]实际上是一个包装器应用程序,它将Eclipse插件EGit [9]包装到一个独立的应用程序中。比起技术背景,我们关心的是最终结果:它是否运行良好?它是否可以用作所有不同类型项目的独立应用程序?
- 从许可的角度来看,[8]声称一切都是自由和开源的。但由于它确实使用了EGit [9],因此归结为EGit的许可证。从我在[10]中看到的内容来看,它归结为Eclipse公共许可证,所以它应该都是免费的。
- 实际上,它工作得很好。人们需要习惯用户界面,但它的工作非常顺利。
- 我喜欢UI提供了组织良好和详细的信息。它给你一种很好的感觉,你已经掌控了一切。
- 没有看到从应用程序发出“拉取请求”的方法。
- 由于这个工具看起来非常令人印象深刻,所以我检查了一下。似乎没有定期更新和维护。据我所知,插件EGit比MeGit的版本晚。这意味着最新版本的EGit不包含在可以从该站点下载的MeGit可执行文件中。
6. Guitar
6.1. 详情
- 产品:Guitar
- 公司:开源
- 网站: GitHub - soramimi/Guitar: Git GUI Client
- 平台:Windows,Linux,Mac
- 许可证:根据[11],它是开源的,完整版完全免费用于非商业和商业用途
6.2. 概述
以下是屏幕截图:
显示分支/历史记录面板的主面板:
暂存文件/未暂存文件/提交按钮有点不完善和不友好:
“提交详细信息”对话框也很粗糙,但提供了所有必要的信息:
责怪面板简单实用:
6.3. 印象
- 从一开始,印象就很差。看起来像一个未完成的应用程序。
- 有时很慢的Gui,尽管它说它是C++代码
- 不允许我在工作目录中使用未暂存的文件提交。这是一个很大的功能错误。
- 看不到存储内容
- 决定不想浪费时间。看起来像一个未完成/未改进的应用程序,没有很多功能,有时很慢,绝对不是你想每天使用的东西。
- 有趣的是,该应用程序在某些Git网站上列为推荐的GUI客户端......它实际上不能用于日常工作。远远不如我们在这里测试的其他应用程序。
7. TortoiseGit
7.1. 详情
- 名称:TortoiseGit
- 公司:开源
- 网站: TortoiseGit – Windows Shell Interface to Git
- 平台:Windows
- 许可证:根据[12],它是开源的,完整版完全免费用于非商业和商业用途
7.2. 概述
以下是屏幕截图:
奇怪的应用程序设计,它作为文件资源管理器的shell扩展启动,通过包含项目/存储库的文件夹上的上下文菜单(右键单击)。显示从上下文菜单开始,并列出所有应用程序选项。这实际上是应用程序菜单。我们选择了存储库浏览器(存储库浏览器)。然后我们选择查看所有分支:
再次右键单击,我们到达了暂存文件/未暂存文件。在那里,我们得到了打开提交对话框的提交按钮:
然后我们尝试合并一个分支(具有冲突的文件)以查看会发生什么。我们得到了许多对话。合并分支/冲突文件/合并面板:
“存储”面板显示基本存储信息:
要进入Blame面板,您需要在文件资源管理器中右键单击该文件并浏览上下文菜单选项:
7.3. 印象
- 应用程序从上下文菜单启动,所有菜单选项也作为上下文菜单选项列出,因此会有很多“右键单击”。对于普通用户来说,这有点奇怪/不友好。
- 虽然它肯定有很多功能,但用户界面被分割成独立的对话框,并且有点不遵循“Gui客户端”下假设的定义。
- 我们认为,我们在以前的应用程序中看到的集成Gui客户端解决方案为普通用户提供了更舒适的工作。
- 由于现在当我右键单击该文件时非常烦人,因此此应用程序的上下文菜单中的选项太多,因此我计划很快卸载它。
8. 结论
到目前为止,这项测试的明显赢家是:
- SourceTree(Sourcetree | Free Git GUI for Mac and Windows)
如果您正在寻找一个稳定,功能丰富,漂亮的图形界面和易于使用的免费GUI Git客户端,SourceTree是您的选择。这是您唯一需要的Git客户端应用程序,您可以在家中和您将工作的任何工作场所自由使用它。
然而,另一个给人留下深刻印象的应用程序是MeGit / EGit(GitHub - eclipsesource/megit: Standalone Git GUI based on EGit)。它为高级用户提供了更详细的信息。我们注意到的唯一问题是没有定期维护。另一方面,Git协议是稳定的,不会随着时间的推移而改变。
但是,当然,偏好和意见不同,因此每个人都有权选择自己喜欢的工具并随意使用它。
9. 参考资料
- [1] Sourcetree | Free Git GUI for Mac and Windows
- [2] Bitbucket | Git solution for teams using Jira
- [3] Collaboration software for software, IT and business teams
- [4] Solved: Sourcetree license (commercial use)
- [5] Discussions · community · GitHub
- [6] https://github.com/gitextensions/gitextensions/wiki
- [7] Microsoft to acquire GitHub for $7.5 billion - Stories
- [8] GitHub - eclipsesource/megit: Standalone Git GUI based on EGit
- [9] EGit | The Eclipse Foundation
- [10] LICENSE - egit/egit - Gitiles
- [11] GitHub - soramimi/Guitar: Git GUI Client
- [12] About – TortoiseGit – Windows Shell Interface to Git
https://www.codeproject.com/Articles/5338678/Git-6-Free-GUI-Clients