78

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

4

10 回答 10

101

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

优点:

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

缺点:

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

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

结论:直接使用msysGit就行,正确学习git。将来您将避免许多头痛。

于 2011-07-27T17:28:25.140 回答
26

我的公司两者都尝试了,但很快就放弃了 Tortoise Git。它崩溃的频率更高。编码人员声称 Tortoise Git 的能力不够,但我自己没有检查过。但我自己确实看到了很多崩溃。

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

Git Extensions 在拉取期间没有显示进度计数器的选项。因此,仅使用 Git 扩展,您坐在一个神秘的非进度条前,不知道会发生什么以及是否失败。最糟糕的是密码丢失或错误:Git Extensions 只是让您永远等待,显示相同的发光条,就好像它正在做一些耗时的事情一样。Git Extensions 的另一个可怕之处是在对许多大文件进行版本控制并使用 rebase 拉取时,频繁中止“内存不足”。在这样的中止之后,非编码用户总是被问题压得喘不过气来。他们没有更改的许多文件显示为已更改,并且锁定文件阻止他们处理问题等。

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

于 2011-08-08T08:51:36.023 回答
20

您需要 Git 扩展有一个重要原因 - 它向您显示提交日志的图形视图(见下文)。如果没有那个图形视图,我认为大多数刚接触 git 的人都不会了解分支、提交、变基、樱桃采摘等的情况(我知道我没有)。

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

话虽如此,您也可以使用 Tortoise Git(假设它有效),因为它们都调用相同的命令行可执行文件并作用于相同的 git 存储库。

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

Git 扩展日志视图

于 2011-09-28T01:23:45.340 回答
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 设置、托管远程 repo 的服务器上的文件权限问题等)。例如,有一次我做了一个简单的推送,导致失败和中止。事实证明,我试图推送到的远程是一个非常长的路径名,这导致托管 repo 的 Mac 服务器出现问题。

无论如何,这就是说,我对 GitExtensions 的体验是相当积极的。我发现上面概述的好处使得忍受偶尔的中止和冻结直到错误得到修复是值得的。

于 2011-09-01T06:59:14.843 回答
12

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

要记住的一件事是,由于 TGit 只是 GIT 之上的一个外壳,因此混合这两种方法并没有什么坏处。我在大多数情况下都使用 TGit,但是对于那些笨拙的或者我在 TGit 中不太理解的命令,我会使用 GIT。但是即使您打算使用 TGit,如上所述,首先了解 GIT 的基础知识仍然很重要。我已经通读了 Chacon 书中的前三章(可在http://progit.org/book/在线免费获得或在亚马逊购买)。如果你像我一样,你可能想多读几遍,让范式深入人心。这并不复杂,但它与以前的 VCS 有很大不同。

TGit 从来没有像其他一些评论者那样让我崩溃,但是我的 repo 一直很小。它确实不止一次吃掉了我的提交评论,这可能是用户错误。由于您可以返回并重新编辑评论,这只是一个烦恼,值得拥有 GUI 的便利,窗口一目了然地显示大量信息。

于 2012-03-13T20:18:57.190 回答
10

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

怀着正确的期望,TortoiseGit 为在 Windows 上使用 git 提供了一个出色的 gui。它不是 TortoiseSvn 的替代品,而是对使用 gitk + git-gui 可以实现的改进的 gui(可以被认为是核心 git 功能的一部分,可以在 msysgit 中访问)。我看到的唯一不好的事情是您不需要记住所有用于结帐/变基/合并等的确切命令,因为可以通过 gui 非常方便地完成所有这些操作(这就是重点)。putty/ssh 问题更多地与 Windows 上对 ssh 的较差支持有关,并且不是 TortoiseGit 独有的。

于 2012-01-26T15:29:03.900 回答
7

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

使用 GitExtensions 我倾向于仅将 Windows Explorer 集成用于三件事:

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

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

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

对于几乎所有其他事情,我只需启动 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,非常好用。就是否有任何未提交的更改提供即时反馈。

于 2012-09-06T23:59:18.683 回答
5

对于快速轻松的编译、自定义和构建扩展,GitExtensions (C#) 比 TortoiseGit (Visual C++ MFC) 更好

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

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

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

从 TortoiseSVN 迁移,TortoiseGit 会比 GitExtensions 更熟悉

于 2012-08-07T15:45:37.323 回答
0

日期:2011-08-27。

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

Tortoise Git 首次使用克隆站点(并开始开发)时弹出的“Load Putty Key”框显示为灰色。所以没有找到私钥,错误信息是'connection dropped' SUCCESSFUL!!!!

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

我在 15 分钟内就搞定了,而我只是一个试图雇佣程序员的黑客 ;-)

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

于 2011-08-28T05:36:13.697 回答
0

不要使用 TortoiseGit :-) 我在一些长期的咨询项目中被迫使用它,而且你没有学习 Git。你从本质上学习 SVN 并认为它是 Git。

于 2021-08-20T16:19:56.527 回答