TortoiseGit与Git扩展

时间:2011-05-15 23:13:25

标签: git tortoisegit git-extensions

在基于Windows的操作系统上使用Git Extensions或TortoiseGit有什么好处和缺点?

9 个答案:

答案 0 :(得分:96)

我不知道GitExtensions,但我可以与TortoiseGit分享我的经验(marc_s的评论提到):

优点:

  • 与Windows的完美集成(它是一个shell扩展)
  • 与TortoiseSVN几乎相同的用户界面(如果你已经使用过TortoiseSVN,你知道会发生什么)。

缺点:

  • 您将有艰难时间了解如何使用git。

TortoiseGit的问题在于,使用TortoiseSVN的人会认为一切都将(或应该)与SVN完全一样工作......并且最终从未真正理解如何使用git。作为个人经验,我工作的公司在2年后从SVN迁移到git,并且使用TortoiseGit的每个开发人员最终都不知道他们在做什么,有时搞砸了他们的本地存储库。最后,他们放弃了TortoiseGit并花时间学习git“艰难的方式”(shell,msysGit在Windows上),从那以后每个人都很开心。

结论:直接使用msysGit并正确学习git。你将来会避免许多麻烦。

答案 1 :(得分:26)

我的公司尝试了两种并迅速放弃了Tortoise Git。它经常崩溃。编码员声称Tortoise Git功能不足,但我没有自己检查。但我确实看到了很多自己崩溃的事情。

Coders更喜欢git bash,其他人使用但讨厌git Extensions。虽然他们中的一些甚至还打开了git bash。 Git bash不可避免地会看到进度计数器。

Git Extensions无法在拉动过程中显示进度计数器。因此,仅使用Git Extensions,您就会坐在神秘的非进度条前,不知道发生了什么以及是否有失败。最糟糕的是密码丢失或不正确:Git Extensions让你永远等待,显示相同的发光条,好像它正在做一些耗时的事情。 Git Extensions的另一个恐怖之处在于,在对许多大文件进行版本控制并使用rebase进行版本控制时,经常会出现“内存不足”。在这样的中止之后,非编码用户总是不知所措。他们没有更改的许多文件显示为已更改,锁文件阻止他们处理问题等。

在我看来,两种GUI工具都不成熟。

答案 2 :(得分:19)

您希望Git Extensions有一个重要原因 - 它会显示提交日志的图形视图(请参阅下文)。如果没有那个图形视图,我认为大多数git新手都不会得到分支,提交,变基,挑选樱桃等等(我知道我没有)。

你也希望在命令行上完成一些工作,实际使用git是最好的选择,因为你获得的所有帮助都将基于命令行。

所有这一切,你也可以使用Tortoise Git(假设它有效),因为它们都调用相同的命令行可执行文件并在同一个git存储库上运行。

大多数IDE也有git支持,JetBrains IDEA在添加更改列表和其他功能方面做得非常好。

Git Extensions log view

答案 3 :(得分:13)

我对TortoiseGit没有太多经验,但我安装了,目前正在使用GitExtensions v2.21。

使用GitExtensions的最大优势:

  • 代码行和分支的视觉gitk式图形显示,选项卡中提供了所有基本信息,无需使用不友好的SHA。
  • 以管理员身份安装的能力以及同一台PC上的所有其他用户都可以像普通用户一样使用它。
  • 与Windows资源管理器的内置shell集成
  • 开箱即用与Visual Studio集成(Windows Eclipse用户只需要msysgit,因为他们有自己的GUI来取代对GitExtensions的需求)
  • 易于使用的安装程序预先打包,具有开箱即用的所有必要和必备功能(SSH客户端,KDiff,msysgit)。
  • 与GitHub集成(Fork,clone,pull都精简)

缺点:

  • 文档无法跟上不断添加的新功能。例如,我仍然不知道如何使用脚本功能。

为免我们忘记它是一个完全免费的程序,并提供给我们作为一个没有附加条件的选项,我没有看到如此高的期望的理由,就好像我们是付费客户? 我已经看到了前一个用户提到的一些中止和冻结,但我相信大多数已经在v2.24中得到修复。很多中止和失败的操作实际上不是GitExtensions的错,但更多是GitExtensions之外的系统问题的症状(例如,错误配置的SSH设置,托管远程仓库的服务器上的文件权限问题等)。例如,有一次我做了简单的推送导致失败和中止。事实证明,我试图推送的遥控器是一个非常长的路径名,这导致托管回购的Mac服务器出现问题。

无论如何,尽管如此,我对GitExtensions的体验相当积极。我发现上面列出的好处使我们有必要忍受偶尔的中止和冻结,直到错误被修复。

答案 4 :(得分: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,窗口显示大量的信息一目了然。

答案 5 :(得分:9)

只是为了反驳上面的一些评论:

正确的期望,TortoiseGit提供了一个在Windows上使用git的优秀gui。它不是TortoiseSvn的替代品,而是使用gitk + git-gui(可以被视为核心git功能的一部分并且可以在msysgit中访问)实现改进的gui。我看到的唯一不好的是你不需要记住checkout / rebase / merge等所有确切的命令,因为可以通过gui非常方便地完成所有这些(这是整点)。 putty / ssh问题更多地与Windows上对ssh的劣质支持有关,并不是TortoiseGit独有的。

答案 6 :(得分:7)

我使用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,它没有这个功能,而且非常方便。提供有关是否存在任何未提交更改的即时反馈。

答案 7 :(得分:5)

快速简便的编译,自定义和构建扩展, GitExtensions比TortoiseGit(Visual C ++ MFC)更好(C#)

为了便携性, GitExtensions比TortoiseGit(仅限Win32 / 64)更好(Linux / Mac上的Windows / Linux上的.NET)

要在资源管理器中使用图标叠加,请使用TortoiseGit

为了表现某些功能, TortoiseGit更好,因为它调用静态/动态库来从存储库中检索结果,而GitExtensions只调用具有更大开销的git.exe命令行。

从TortoiseSVN迁移, TortoiseGit比GitExtensions更熟悉

答案 8 :(得分:0)

日期:2011-08-27。

此时,Tortoise Git根本不起作用,谷歌代码网站上的问题在一个月内没有得到关注:http://groups.google.com/group/tortoisegit-users/browse_thread/thread/9090337b7936e1e1

Tortoise Git首次用于克隆网站(并开始开发)的弹出窗口中的“Load Putty Key”框显示为灰色。所以没有找到私钥,错误信息是'连接丢失'成功!!!!

Git Bash完美运行,尽管是基于控制台的。如果上面的每个人都谈到在使用Tortoise Git时不理解Git概念,我就会基于此而远离它,即使没有考虑到我花了三个小时试图让Tortoise Git为开发人员工作。他将不得不学习控制台Git,或者继续前进。

我在15分钟内完成了工作,我只是一个试图聘请程序员的黑客; - )

PS,Eclipse提供了所有三个主要的版本控制存储库“连接器”,并且是一个非常好的编辑器。