TortoiseGit与Git扩展

Sha*_*ean 76 git tortoisegit git-extensions

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

Raf*_*aim 97

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

优点:

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

缺点:

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

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

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

  • 好消息争辩+1 (10认同)
  • 我个人使用TortoiseGit进行提交(审查提交)和日志视图,其他操作使用命令行 (4认同)
  • TortoiseGit没有很难学习,它只是像TortoiseSVN一样运作.顺便说一下,我使用TortoiseGit和gitextension. (2认同)
  • @ user133408:你可以简单地使用git bash中的"gitk"和"git-gui".没有用于使整个机器崩溃并减慢文件浏览器速度的膨胀软件,并导致文件锁定. (2认同)

小智 26

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

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

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

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

  • Git Extensions支持在很长一段时间之前显示进度.Git进程中断也是固定的. (6认同)

stu*_*eek 19

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

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

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

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

Git Extensions日志视图

  • 这是一个非常重要的考虑因素.由于其CVS/SVN传统,TortoiseGit是面向文件和目录的.但是git本身并不是 - 它是面向历史的,文件和目录恰好是历史所关注的.实际上,任何Git工具的主要访问方式都是通过文件/目录上下文菜单存在缺陷.这也包括Git Extensions. (6认同)

小智 13

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

使用GitExtensions的最大优势:

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

缺点:

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

以免我们忘记它是一个完全免费的程序,并提供给我们作为一个没有附加条件的选项,我没有看到如此高的期望的理由,就好像我们是付费客户?我已经看到了前一个用户提到的一些中止和冻结,但我相信大多数已经在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,窗口显示大量的信息一目了然.


pru*_*wan 9

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

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

  • 也支持 **TortoiseGit**: 1)它在旧电脑上速度要快得多,没有像 GE 那样的几秒加载滞后;2)它允许在默认差异查看器中编辑当前文件;3)上下文菜单中有更多选项;5)提交查看器中有可配置的列;5) 它介意 GUI 中的“autocrlf”设置(即不会像 GE 那样在登台时重新发出警告); (2认同)

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


lin*_*ize 5

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

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

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

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

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