目录
1. 简介
1.1. 测试的工具
1.2. 测试方法
2. SourceTree
2.1. 详情
2.2. 概述
2.3. 印象
3. GitHub Desktop
3.1. 详情
3.2. 概述
3.3. 印象
4. Git Extensions
4.1. 详情
4.2. 概述
4.3. 印象
5. MeGit/EGit
5.1. 详情
5.2. 概述
5.3. 印象
6. Guitar
6.1. 详情
6.2. 概述
6.3. 印象
7. TortoiseGit
7.1. 详情
7.2. 概述
7.3. 印象
8. 结论
9. 参考资料
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