TortoiseGit vs Git扩展


76

在基于Windows的OS上使用Git Extensions或TortoiseGit有什么优点和缺点?


6
如果您已经习惯了TortoiseSVN,TortoiseGit是一个不错的选择。这是一个Shell扩展-因此您需要在Windows资源管理器中进行操作。GitExtensions是一款功能完善的Windows应用程序,您可以从Windows资源管理器中单独启动。但是有时对我来说有点“奇怪”,并不是我期望Windows实用程序正常工作的方式-崩溃并冻结了很多东西(至少对我而言)。
marc_s

Answers:


98

我不知道GitExtensions,但可以与TortoiseGit分享我的经验(marc_s的评论中也有此说法):

优点:

  • 与Windows完美集成(这是一个Shell扩展)
  • 与TortoiseSVN几乎相同的UI(如果您已经使用过TortoiseSVN,则知道会发生什么)。

缺点:

  • 您将很难理解如何使用git。

TortoiseGit的问题在于,使用TortoiseSVN的人们会认为一切(或应该)都将完全像在SVN中一样工作……并且最终永远无法真正理解如何使用git。作为个人经验,我工作的公司在两年后从SVN迁移到git,每个使用TortoiseGit的开发人员最终都不是真正了解他们在做什么,有时甚至搞砸了他们的本地存储库。最后,他们放弃了TortoiseGit并花时间“辛苦地学习” git(Windows上的shell,msysGit),从那时起,每个人都很高兴。

结论:只需直接使用msysGit即可正确学习git。您将来会避免很多头痛。


10
利弊论证+1
Josua Marcel Chrisano 2012年

1
从使用Git Extensions到不得不为另一个项目使用TortoiseSVN的另一种方式,我发现使用TortoiseSVN非常烦人。尽管我最终习惯了它,但还是想搞砸SVN存储库。根据我的经验和Rafael的评论,我认为Tortoise的做事方式与git之间肯定存在阻抗不匹配的情况。
西蒙·图西

4
我个人使用TortoiseGit进行提交(以查看提交)和日志视图,对于其他操作,请使用命令行

2
TortoiseGit不需要学习,它就像TortoiseSVN一样运作。顺便说一句,我都使用TortoiseGit和gitextension。
张翔

2
@ user133408:您可以简单地使用git bash中的“ gitk”和“ git-gui”。不要使用for肿的软件,它会使整台计算机瘫痪并减慢文件浏览器的速度,并导致文件锁定。
v.oddou

26

我的公司尝试了这两种方法,并迅速放弃了Tortoise Git。它崩溃的频率更高。编码人员声称Tortoise Git不够强大,但我自己没有检查。但是我确实看到了很多《崩溃》本身。

编码人员更喜欢git bash,其他人则讨厌git扩展。尽管甚至其中一些还额外打开了git bash。Git bash不可避免地要看到进度计数器。

Git Extensions没有选择在拉动期间显示进度计数器。因此,仅使用Git Extensions,您就坐在莫名其妙的非进度条前面,不知道会发生什么以及是否失败。最糟糕的是缺少密码或密码不正确:Git Extensions只是让您永远等待,显示出一条发光的条,就像在做耗时的事情一样。Git扩展的另一个恐怖之处在于,在对许多大文件进行版本控制并通过重新设置基准时,经常会因“内存不足”而中止运行。在中止之后,非编码用户总是会遇到很多问题。他们没有更改的许多文件显示为已更改,并且锁定文件阻止它们处理问题,等等。

我认为两个GUI工具都不成熟。


作为更新,尽管错误消息可能仍然有些混乱,但实际上它们现在可以正确显示。
Teo KlestrupRöijezon,2012年

6
Git Extensions支持很久以前在拉动过程中显示进度。Git进程中断也已修复。
KindDragon

1
对于一般信息,如果KindDragon在多个站点上使用相同的用户名,则他是Git Extensions开发人员之一,因此他的信息很可能是正确的。
西蒙·图西

我从2016年开始使用TortoiseGit,从那时起对我来说一直很轻松。
3377年

19

您想要Git Extensions的一个重要原因-它向您显示提交日志的图形视图(请参见下文)。没有该图形视图,我认为git的大多数新手都不会了解分支,提交,重新设置基准,摘樱桃等方面的工作(我知道我没有)。

您还将要在命令行上做一些工作,最好是实际使用git,因为您获得的所有帮助都将基于命令行。

综上所述,您也可以使用Tortoise Git(假设它可以正常工作),因为它们都调用相同的命令行可执行文件并作用于相同的git存储库。

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

Git Extensions日志视图


6
这是一个非常重要的考虑因素。由于具有CVS / SVN的传统,TortoiseGit是面向文件和目录的。但是git本身不是-它是面向历史的,而文件和目录恰好是该历史关注的内容。实际上,任何主要通过文件/目录上下文菜单进行访问的Git工具都存在缺陷。这也包括Git扩展。
杰里米(Jeremy)

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方面的经验是相当积极的。我发现上面概述的好处使其值得忍受偶尔的异常终止和冻结,直到修复了错误为止。


12

我从来没有使用过它,所以无法与Git扩展交谈。纯GIT出现了一些问题。例如,无法集成GVIM。Tortoise Git具有集成的编辑器和差异工具(这非常了不起),因此非常方便。我喜欢Scott Chacon书中的分支图,并希望TGit具有类似的图。他们确实有一个显示分支的工具,但是它不如书中的那样好。

要记住的一件事是,由于TGit只是GIT之上的外壳,因此将这两种方法混合使用不会有任何危害。我使用TGit进行大多数操作,但是对于一些笨拙的命令或者我对TGit不太了解的命令,请使用GIT。但是,即使您打算使用TGit,如上所述,首先了解GIT的基础仍然很重要。我已经通读了Chacon书中的第一,三章(可在http://progit.org/book/上免费在线获得,也可以在亚马逊上购买)。如果您像我一样,则可能需要多次阅读它们,以使范式沉入其中。这并不是很复杂,但它与以前的VCS完全不同。

TGit从未像其他一些审阅者那样使我崩溃,但是那时我的回购规模很小。它确实吞噬了我的提交评论不止一次,这可能是用户错误。由于您可以返回并重新编辑评论,因此这很烦人,并且值得拥有GUI,窗口一目了然,可显示大量信息。


只想评论一下我也有过同样的经历。使用TGit,除非在较不常用的操作中使用bash更容易。TGit具有出色的日志功能,出色的内置差异,现在在2016年表现稳定。
2016年

10

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

有了正确的期望,TortoiseGit为在Windows上使用git提供了出色的gui。它不是TortoiseSvn的替代品,而是使用gitk + git-gui(可以视为核心git功能的一部分,可以在msysgit中访问)改进的gui。我看到的唯一不好的事情是,您将不需要记住所有用于checkout / rebase / merge等的确切命令,因为可以通过gui(非常重要)很方便地完成所有这些操作。腻子/ ssh问题与Windows上对ssh的较差支持有关,并非TortoiseGit独有。


1
同样有利于TortoiseGit:1)在没有GE等几秒钟的负载延迟的老式PC上,速度要快得多;2)允许在默认的diff-viewer中编辑当前文件;3)在上下文菜单中有更多选项;5)在提交查看器中具有可配置的列;5)介意autocrlf在GUI中进行设置(即不会像GE那样在升级时发出警告);
Annarfych '16

只需将其与openssh一起使用即可,而不是腻子,并要开心
Marc.2377'1

7

我使用GitExtensions。我没有使用过TortoiseGit,但我们的其他开发人员之一对此非常喜欢,并且拒绝使用GitExtensions。他的推理是:1)很熟悉;2)它具有出色的Windows资源管理器集成。

使用GitExtensions,我倾向于将Windows资源管理器集成仅用于三件事:

1)创建一个新的本地存储库(上下文菜单项Git Init Here,它实际上是Windows的Git命令; GitExtensions位于Windows的Git之上);

2)打开Git Extensions GUI(浏览窗口);

3)要将远程存储库克隆到本地存储库(上下文菜单项Git Extensions>克隆)。

对于几乎所有其他内容,我只是启动了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,它没有此功能,非常方便。提供有关是否有未提交的更改的即时反馈。


5

为了快速,轻松地进行编译,自定义和构建扩展,GitExtensions(C#)比TortoiseGit(Visual C ++ MFC)更好(C#)

对于可移植性,GitExtensions比TortoiseGit(仅Win32 / 64)更好(Windows上的.NET / Linux / Mac上的mono)。

要在资源管理器中使用图标覆盖,请使用TortoiseGit

对于某些功能的性能,TortoiseGit更好,因为它调用静态/动态库从存储库中检索结果,而GitExtensions仅调用开销更大的git.exe命令行。

要从TortoiseSVN迁移,TortoiseGit将比GitExtensions更熟悉


1
您不需要Visual Studio的专业版即可编译GitExtensions,但需要TortoiseGit
linquize 2012年

1
如果要构建GitExtensions的外壳扩展,则需要专业版。核心部分使用Express Edition进行编译
linquize 2013年

TortoiseGit调用libgit2,因此它的MUCH更快(帽和大胆故意的)
Marc.2377

0

日期:2011-08-27。

目前,Tortoise Git根本无法使用,而且Google代码网站上的问题在一个月内没有受到关注:http : //groups.google.com/group/tortoisegit-users/browse_thread/thread/9090337b7936e1e1

Tortoise Git首次用于克隆站点(并开始开发)的弹出窗口中的“ Load Putty Key”框将显示为灰色。因此未找到私钥,并且错误消息为“连接断开”成功!!!

尽管基于控制台,但Git Bash可以完美运行。而且,如果以上每个人都在谈论使用Tortoise Git时不理解Git概念,那么我会基于此而远离它,甚至不考虑我为使Tortoise Git为开发人员工作而花费的最后3个小时。他将不得不学习控制台Git或走这条路。

我在15分钟内就可以使用它,而我只是一个试图雇用程序员的黑客;-)

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


4
日期:2012-9-4:一年后,此问题解决了吗?我说TortoiseGit正在改善
凌晨
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.