Sha*_*ean 76 git tortoisegit git-extensions
在基于Windows的操作系统上使用Git Extensions或TortoiseGit有什么好处和缺点?
Raf*_*aim 97
我不知道GitExtensions,但我可以与TortoiseGit分享我的经验(marc_s的评论提到):
优点:
缺点:
TortoiseGit的问题在于,与TortoiseSVN合作的人会认为一切都将(或者应该)与SVN完全一样......并且最终从未真正理解如何使用git.作为个人经验,我工作的公司在2年后从SVN迁移到git,并且使用TortoiseGit的每个开发人员最终都不知道他们在做什么,有时搞砸了他们的本地存储库.最后,他们放弃了TortoiseGit并花时间学习git"艰难的方式"(shell,msysGit在Windows上),从那以后每个人都很高兴.
结论:直接使用msysGit并正确学习git.你将来会避免许多麻烦.
小智 26
我的公司尝试了两种,并迅速放弃了Tortoise Git.它经常崩溃.编码员声称Tortoise Git功能不够,但我没有自己检查.但我确实看到了很多自己崩溃的事情.
Coders更喜欢git bash,其他人使用但讨厌git Extensions.虽然他们中的一些甚至还打开了git bash.Git bash不可避免地会看到进度计数器.
Git Extensions无法在拉动过程中显示进度计数器.因此,仅使用Git Extensions,您就会坐在神秘的非进度条前,不知道发生了什么以及是否有失败.最糟糕的是密码丢失或不正确:Git Extensions让你永远等待,显示相同的发光条,好像它正在做一些耗时的事情.Git Extensions的另一个恐怖之处在于,在对许多大文件进行版本控制并使用rebase进行版本控制时,经常会出现"内存不足".在这样的中止之后,非编码用户总是不知所措.他们没有更改的许多文件显示为已更改,锁定文件阻止他们处理问题等.
在我看来,两种GUI工具都不成熟.
stu*_*eek 19
您希望Git Extensions有一个重要原因 - 它会显示提交日志的图形视图(请参阅下文).如果没有那个图形视图,我认为大多数git新手都不会得到分支,提交,变基,樱桃采摘等等(我知道我没有).
你也想在命令行上做一些你的工作,实际使用git是你最好的选择,因为你获得的所有帮助都将基于命令行.
总而言之,你也可以使用Tortoise Git(假设它有效),因为它们都调用相同的命令行可执行文件并在同一个git存储库上运行.
大多数IDE也有git支持,JetBrains IDEA在添加更改列表和其他功能方面做得很好.
小智 13
我没有使用TortoiseGit的经验,但我安装了,目前正在使用GitExtensions v2.21.
使用GitExtensions的最大优势:
缺点:
以免我们忘记它是一个完全免费的程序,并提供给我们作为一个没有附加条件的选项,我没有看到如此高的期望的理由,就好像我们是付费客户?我已经看到了前一个用户提到的一些中止和冻结,但我相信大多数已经在v2.24中得到修复.很多中止和失败的操作实际上不是GitExtensions的错,但更多是GitExtensions之外的系统问题的症状(例如,错误配置的SSH设置,托管远程仓库的服务器上的文件权限问题等).例如,有一次我做了简单的推送导致失败和中止.事实证明,我试图推送的遥控器是一个非常长的路径名,这导致托管回购的Mac服务器出现问题.
无论如何,但是,我对GitExtensions的体验相当积极.我发现上面列出的好处使我们有必要忍受偶尔的中止和冻结,直到错误得到修复.
小智 12
因为我从未使用它,所以我不能和Git Extensions说话.纯GIT有一些问题.例如,无法集成GVIM.Tortoise Git有一个集成的编辑器和差异工具(这太棒了),所以这是一个非常好的便利.我很喜欢Scott Chacon书中的分支图,并希望TGit有类似的图表.他们确实有一个显示分支的工具,但它不如书中的那个好.
要记住的一件事是,由于TGit只是GIT之上的一个shell,因此混合这两种方法没有任何害处.我使用TGit来处理大多数事情,但是在GIT中使用尴尬的命令或者我在TGit中根本不理解的命令.但即使您计划使用TGit,如上所述,首先要了解GIT的基础知识仍然很重要.我会阅读Chacon书中的第一章,比如说三章(可在http://progit.org/book/免费在线获取或在亚马逊购买).如果你像我一样,你可能想多次阅读它们以让范式陷入其中.它并不是那么复杂,但它与之前的VCS非常不同.
TGit永远不会像我对其他一些评论家那样在我身上崩溃,但后来我的回购已经很小了.它不止一次地吃了我的提交评论,这可能是用户错误.由于您可以返回并重新编辑评论,这只是一个烦恼,值得拥有一个GUI,窗口显示大量的信息一目了然.
只是为了反驳上面的一些评论:
正确的期望,TortoiseGit提供了一个在Windows上使用git的优秀gui.它不是TortoiseSvn的替代品,而是使用gitk + git-gui(可以被视为核心git功能的一部分并且可以在msysgit中访问)实现改进的gui.我看到的唯一不好的是你不需要记住checkout/rebase/merge等所有确切的命令,因为可以通过gui非常方便地完成所有这些(这是整点).putty/ssh问题更多地与Windows上对ssh的劣质支持有关,并不是TortoiseGit独有的.
我使用GitExtensions.我没有使用TortoiseGit,但我们的其他开发人员喜欢它并且拒绝使用GitExtensions.他的推理是1)它很熟悉; 2)它具有出色的Windows资源管理器集成.
使用GitExtensions我倾向于仅使用Windows资源管理器集成三件事:
1)创建一个新的本地存储库(上下文菜单项Git Init Here,实际上是一个Git for Windows命令; GitExtensions位于Git for Windows之上);
2)打开Git Extensions GUI(浏览窗口);
3)将远程存储库克隆到本地存储库(上下文菜单项Git Extensions> Clone).
对于其他几乎所有其他我只需要GitExtensions GUI并在那里工作.
GitExtensions的开发人员声称几乎所有命令都可以从GUI执行.这不是真的,但我发现我只需要每月一次或两次进入命令行界面来完成复杂的任务.
在某些情况下,GUI通过隐藏底层Git命令的复杂性使复杂任务变得简单.这有时涉及将几个Git命令组合成一个动作.例如,创建子模块,其中GUI结合添加子模块,初始化子模块并将其更新为单个操作.在另一种情况下,GUI通过提供Git缺少的命令简化任务 - 删除子模块(在Git中你必须手动编辑各种文件,如.gitmodules和.git/config以删除子模块).我很想知道TortoiseGit是否以类似的方式简化了复杂的任务.
GitExtensions还具有相当基本的Visual Studio集成.不知道TortoiseGit是否可以.Visual Studio 2008和2010有一个单独的Git源代码控制提供程序,它提供了更广泛的Visual Studio集成.但是,安装Git源代码控制提供程序后,我发现我从未使用它.我在Visual Studio中使用的唯一GitExtensions集成在工具栏上,用适当的存储库打开GitExtensions GUI.我将在一台显示器上使用Visual Studio,在另一台显示器上打开GitExtensions.
至少从版本2.32开始,GitExtensions显示其工具栏中未提交的文件数.我之前使用的是2.24,它没有这个功能,而且非常方便.提供有关是否存在任何未提交更改的即时反馈.
为了快速简便的编译,自定义和构建扩展,GitExtensions比TortoiseGit(Visual C++ MFC)更好(C#)
为了便于携带,GitExtensions比TortoiseGit(仅限Win32/64)更好(Linux/Mac上Windows/mono上的.NET)
要在资源管理器中使用图标叠加,请使用TortoiseGit
为了执行某些功能,TortoiseGit更好,因为它调用静态/动态库来从存储库中检索结果,而GitExtensions只调用具有更大开销的git.exe命令行.
要从TortoiseSVN迁移,TortoiseGit将比GitExtensions更熟悉