TortoiseGit vs Git Extensions

What are the benefits and disadvantage of using either Git Extensions or TortoiseGit on a Windows Based OS?

64502 次浏览

我不知道 GitExtended,但我可以分享我使用 TortoiseGit 的经验(marc _ s 的评论暗示了这一点) :

优点:

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

缺点:

  • You will have a 用力 time understanding how to use git.

TortoiseGit 的问题在于,使用 TortoiseSVN 的人将 好好想想所有东西都会(或应该)像 SVN 一样工作... ... 并且最终永远不会真正理解如何使用 git。作为一个个人经验,我工作的公司在两年后从 SVN 迁移到了 git,每一个使用 TortoiseGit 的开发人员最终都不知道他们在做什么,有时甚至搞砸了他们的本地存储库。最后,他们放弃了 TortoiseGit,花时间学习 git 的“硬道理”(Windows 上的 shell 和 msysGit) ,从那以后,每个人都很高兴。

结论: 只要直接使用 msysGit,正确学习 git,就可以避免以后的许多麻烦。

我的公司尝试了这两种方法,很快就放弃了龟 Git。它坠毁得更频繁。程序员声称 Tortoise Git 不够强大,但我没有亲自检查。但我亲眼看到了很多车祸。

The Coders prefer git bash, the others use but hate git Extensions. Although even some of them additionally open up git bash. Git bash is unavoidable to see the progress counters.

Git 扩展在拉取过程中没有显示进度计数器的选项。因此,只使用 Git 扩展,您坐在一个神秘的非进度栏前,不知道会发生什么,也不知道是否出现故障。最糟糕的是缺少或错误的密码: Git 扩展只是让您永远等待,显示同样的发光条,好像它正在做一些耗时的事情。Git 扩展的另一个恐怖之处是,当对许多大文件进行版本控制并使用 rebase 进行拉取时,常常会因为“内存不足”而中止。在这样的中止之后,非编码用户总是被问题淹没。许多没有更改的文件显示为已更改,而锁文件阻止它们处理问题,等等。.

In my opinion both GUI tools are immature.

日期: 2011-08-27。

在这一点上,Tortoise Git 不工作在所有,并在谷歌代码网站上的问题已经没有收到一个月的关注: http://groups.google.com/group/tortoisegit-users/browse_thread/thread/9090337b7936e1e1

Tortoise Git 第一次用来克隆网站(并开始开发)的弹出框“ Load Putty Key”是灰色的。所以没有找到私钥,并且错误消息是“连接被放弃”SUCCESSFUL! ! ! !

Git Bash 工作完美,尽管是基于控制台的。如果上面的每个人都说在使用 Tortoise Git 时不理解 Git 的概念,那么我就会基于这一点远离它,甚至不考虑我花了3个小时试图让 Tortoise Git 为开发人员工作的情况。他将不得不学习控制台 Git,或者沿着这条路走下去。

我让它在15分钟内工作,而我只是一个试图雇佣程序员的黑客; -)

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

我对 TortoiseGit 没有太多的经验,但是我已经安装了,并且目前正在使用 GitExtensionsv2.21。

使用 GitExtended 的最大优势是:

  • 类似 gitk 的代码线和分支的可视化图形显示,所有必要的信息都可以在选项卡中找到,这样就不需要使用不友好的 SHA。
  • 能够安装作为管理员和所有其他用户在同一台电脑上可以使用它就像任何普通用户。
  • 内置壳积分法文件资源管理器
  • 开箱即用与 Visual Studio 集成(Windows Eclipse 用户只需要 msysgit,因为他们有自己的 GUI 来替代对 GitExtended 的需求)
  • 易于使用的安装程序,预先打包了所有必要和先决条件的功能,开箱即用(SSH 客户端,KDiff,msysgit)。
  • 与 GitHub 的集成(Fork、 clone、 pull 都是流线型的)

缺点:

  • documentation does not keep up with the new features constantly being added. For example, I still don't know how to use the scripting features.

为了避免我们忘记这是一个完全免费的项目,并且提供给我们一个没有附加条件的选择,我看不出对它寄予如此高期望的理由,就好像我们是付费客户一样? 我已经看到了前面用户提到的一些中止和冻结,但是我相信大部分已经在 v2.24中修复了。很多中止和失败的操作实际上不是 GitExtended 的错,而是 GitExtended 之外的系统问题的症状(例如,错误配置的 SSH 设置,远程回购服务器上的文件权限问题等等)。例如,有一次我做了一个简单的推动操作,结果导致了失败和中止。原来,我试图推到的远程是在一个非常长的路径名,这是造成问题的 Mac 服务器托管回购。

Anyways, that said however, my experience with GitExtensions has been fairly positive. I find the benefits outlined above have made it worthwhile to put up with the occasional aborts and freezes until the bugs are fixed.

你想要 Git 扩展的一个重要原因-它向你展示了提交日志的图形视图(见下文)。如果没有这个图形化视图,我认为大多数初学 git 的人都不会理解分支、提交、重定基、初选等等所发生的事情(我知道我没有)。

You are going to do want to do some of your work on the command line also, it's your best bet to practically use git since all the help you get will be command line based.

也就是说,您也可以使用 Tortoise Git (假设它可以工作) ,因为它们都调用相同的命令行可执行文件,并在相同的 Git 存储库上执行操作。

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

Git Extensions log view

Just to counter some of remarks above:

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

由于我从未使用过 Git Extended,所以无法与它对话。纯 GIT 有些问题。例如,无法集成 GVIM。Tortoise Git 有一个集成的编辑器和差异工具(这是惊人的) ,所以这是一个非常好的方便。我喜欢 Scott Chacon 书中的分支图,希望 TGit 也有类似的图。他们确实有展示树枝的工具,但是没有书中的那个好。

需要记住的一点是,由于 TGit 只是 GIT 之上的一个 shell,因此混合使用这两种方法没有什么坏处。几乎所有事情我都使用 TGit,但是如果遇到一些命令比较笨拙或者我在 TGit 中不太理解的话,我就会使用 GIT。但是,如上所述,即使您计划使用 TGit,首先理解 GIT 的基础仍然很重要。我读了查孔书籍的前三章(可在 http://progit.org/book/免费在线购买或在亚马逊购买)。如果你像我一样,你可能想要把它们读几遍,以便理解这个范例。这并不是那么复杂,但它与以前的 VCS 非常不同。

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

为了快速简单的编译、自定义和构建扩展, GitExtended (C #)比 TortoiseGit (Visual C + + MFC)更好

为了便于携带, GitExtended (Windows 上的.NET/Linux/Mac 上的 mono)比 TortoiseGit (只有 Win32/64)好

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

对于某些特性的性能, TortoiseGit 更好,因为它调用静态/动态库来从存储库检索结果,而 GitExtended 只调用 git.exe 命令行,这样开销更大。

To migrate from TortoiseSVN, TortoiseGit 将比 GitExtended 更加熟悉

我使用 GitExtended。我还没有用过 TortoiseGit,但是我们的一个开发人员很喜欢它,并且拒绝使用 GitExtended。他的理由是: 1)这很熟悉; 2)它具有很强的文件资源管理器整合能力。

使用 gitExtended 我倾向于将文件资源管理器集成用于以下三个方面:

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

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

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

For pretty much everything else I just have the GitExtensions GUI up and work from there.

GitExtended 的开发人员声称几乎任何命令都可以从 GUI 中执行。这并不完全正确,但我发现,对于复杂的任务,我只需要每月一到两次进入命令行界面。

在某些情况下,GUI 通过隐藏底层 Git 命令的复杂性使复杂任务变得简单。这有时需要将几个 Git 命令组合成一个操作。例如创建子模块,其中 GUI 将添加子模块、初始化子模块并将其更新为单个操作。在另一种情况下,GUI 通过提供 Git 所不具备的命令来简化任务——删除子模块(在 Git 中,您必须手动编辑各种文件,例如。Gitmodule 和。Git/config 删除子模块)。我很想知道 TortoiseGit 是否以类似的方式简化了复杂的任务。

GitExtended 还具有相当基本的 VisualStudio 集成。不知道 TortoiseGit 知不知道。VisualStudio2008和2010有一个单独的 Git 源代码管理提供程序,它提供了更广泛的 VisualStudio 集成。但是,在安装了 Git 源代码管理提供程序之后,我发现我从来没有使用过它。我从 VisualStudio 中使用的唯一 GitExtensionsIntegration 在工具栏上,用于使用适当的存储库打开 GitExtensionsGUI。我将在一个显示器上使用 VisualStudio,在另一个显示器上打开 GitExtended。

至少在2.32版本中,GitExtended 在其工具栏中显示了未提交文件的数量。我以前用过2.24,它没有这个特性,而且非常方便。对是否有任何未提交的更改提供即时反馈。

不要使用 TortoiseGit: ——)我曾被迫在一些长期咨询项目中使用它,而且你也不会学习 Git。本质上,您学习 SVN 并思考它的 Git。