2011-05-15 169 views
68

在基於Windows的操作系統上使用Git擴展或TortoiseGit有什麼好處和缺點?TortoiseGit vs Git擴展

+6

如果你已經習慣了例如TortoiseGit,那麼TortoiseGit是一個不錯的選擇。 TortoiseSVN的。這是一個外殼擴展 - 所以你需要從Windows資源管理器中工作。 GitExtensions是一個完整的Windows應用程序,您可以從Windows資源管理器單獨啓動;但有時候我感覺有點「奇怪」,並不像我期望的Windows實用程序那樣完全工作 - 並且崩潰並凍結了很多(至少對我而言)。 – 2011-05-16 04:57:27

回答

93

我不知道GitExtensions,但我可以分享我的TortoiseGit經驗(由marc_s的評論提到):

優點:

  • 與Windows(這是一個外殼擴展)
  • 完美集成
  • 與TortoiseSVN幾乎相同的用戶界面(如果您已經使用過TortoiseSVN,您知道該期待什麼)。

缺點:

  • 你將有一個時間瞭解如何使用git。

與TortoiseGit的問題是,誰與TortoiseSNV工作過的人都會認爲一切將(或應該)工作酷似SVN ......並最終從來沒有真正理解如何使用Git工作。作爲個人經驗,我工作的公司2年後從SVN遷移到git,每個使用TortoiseGit的開發者都不知道自己在做什麼,有時甚至搞砸了他們的本地存儲庫。最後,他們放棄了TortoiseGit,花時間學習git「困難的方式」(shell,Windows上的msysGit),從此以後每個人都很開心。

結論:直接使用msysGit並正確學習git。你將在未來避免許多頭痛。

+9

好利弊爭論+1 – 2012-11-29 02:48:46

+1

作爲另一種方式的人,從使用Git Extensions到另一個項目需要使用TortoiseSVN,我發現使用TortoiseSVN非常刺激。傾向於搞砸了SVN存儲庫,儘管我最終習慣了它。根據我的經驗和拉斐爾的評論,我認爲Tortoise的做事方式和git之間肯定存在阻抗不匹配。 – 2013-03-09 13:50:33

+4

我個人使用TortoiseGit進行提交(僅查看提交)和日誌查看,對於其他操作使用命令行 – 2013-09-05 14:33:14

25

我的公司嘗試並迅速放棄了Tortoise Git。它經常墜毀。編碼者聲稱Tortoise Git不夠強大,但我沒有自己檢查。但我確實看到了很多自己的崩潰。

編碼者更喜歡git bash,其他人使用但討厭git擴展。雖然其中一些人還額外打開了git bash。 Git bash不可避免地要看到進度計數器。

Git擴展沒有選項可以顯示拉動過程中的進度計數器。所以只有Git Extensions,你坐在一個神祕的非進度欄前面,不知道會發生什麼以及是否失敗。最糟糕的是缺少或不正確的密碼:Git擴展只是讓你永遠等待,顯示同樣的輝煌吧,就好像它正在做一些耗時的事情。 Git Extensions的另一個驚悚之處在於,當「版本化」許多大文件並使用rebase進行提取時,會出現「內存不足」的情況。在這種中止之後,非編碼用戶總是被問題困擾。他們沒有更改的許多文件顯示爲已更改,並且鎖定文件阻止他們處理問題等。

在我看來,這兩種GUI工具都不成熟。

+7

最後一句話+1。 – mbx 2011-08-08 08:53:12

+0

作爲更新,雖然錯誤信息仍然有點令人困惑,但它們實際上現在已經正確顯示。 – 2012-11-16 14:26:07

+6

很久以前,Git Extensions支持在拉取期間顯示進度。 Git進程中斷也是固定的。 – KindDragon 2013-03-04 18:52:01

0

日期:2011-08-27。

此時,Tortoise Git根本不起作用,並且谷歌代碼網站上的問題在一個月內沒有得到關注:http://groups.google.com/group/tortoisegit-users/browse_thread/thread/9090337b7936e1e1

從Tortoise Git的第一次使用克隆一個網站(並開始開發)的彈出框中的「加載修補程序密鑰」框是灰色的。所以沒有找到私鑰,並且錯誤消息是「連接中斷」成功!!!!

儘管控制檯爲基礎,但Git Bash完美工作。如果上面的每個人都談論了在使用Tortoise Git時不瞭解Git概念,那麼即使沒有考慮到我花了3個小時來嘗試讓Tortoise Git爲開發人員工作,我也會遠離它。他將不得不學習控制檯Git,或者走下去。

我得到了它在15分鐘內的工作,我只是想聘請程序員;-)

PS黑客,Eclipse有三大版本控制庫「連接器」可以是一個非常好的編輯器。

+4

日期:2012-9-4:一年後,問題解決了嗎?我說TortoiseGit正在改進 – linquize 2012-09-04 06:30:23

13

我對TortoiseGit沒有多少經驗,但是我已經安裝了,並且正在使用GitExtensions v2.21。

最大的優點在於使用GitExtensions:

  • 視覺gitk般的代碼行及分支機構的圖形顯示,在卡上提供所有必要的信息,從而無需任何與不友好SHA的工作。
  • 以管理員和所有其他用戶安裝在同一臺PC上的能力可以像任何普通用戶一樣使用它。
  • 內置外殼集成與Windows資源管理器
  • 了與Visual Studio的盒子整合(視窗Eclipse用戶只需要msysgit,因爲他們有自己的GUI,以取代GitExtensions的需要)
  • 易於使用的安裝程序它預先打包了所有必要和先決條件的功能,以開箱即用(SSH Client,KDiff,msysgit)。
  • 整合與GitHub的(叉,克隆,拉都是流線型)

缺點:

  • 文檔不會持續不斷地添加新的功能跟不上。例如,我仍然不知道如何使用腳本功能。

我們不要忘記,這是一個完全免費的程序,並提供給我們,不附帶任何條件的選擇,我沒有看到這樣高的期望放在它的理由,因爲如果我們支付客戶? 我已經看到了前面的用戶提到的一些中止和凍結,但我相信大多數已經在v2.24中得到了修復。很多中止和失敗的行爲並不是GitExtensions的錯,但更多的是GitExtensions之外的系統問題的症狀(例如,配置錯誤的SSH設置,託管遠程回購的服務器上的文件權限問題等)。例如,有一次,我做了一次簡單的推動,導致失敗並中止。事實證明,我嘗試推送的遠程路由器的路徑名非常長,導致承載該repo的Mac服務器出現問題。

不管怎麼說,然而,我說GitExtensions的經驗是相當積極的。我發現上面列出的好處使得值得忍受偶爾的異常終止並凍結,直到錯誤得到修復。

18

你想要Git擴展的一個重要原因 - 它顯示了提交日誌的圖形視圖(見下文)。如果沒有這種圖形視圖,我認爲大多數人都不會知道git會發生什麼事情發生在分支機構,提交,重新發布,櫻桃採摘等等上(我知道我沒有)。

你也想在命令行上做一些你的工作,這是你最好的選擇,因爲你得到的所有幫助都是基於命令行的。所有這一切,你也可以使用Tortoise Git(假設它有效),因爲它們都調用相同的命令行可執行文件,並在同一個git存儲庫上運行。

大多數IDE都支持git,JetBrains IDEA在添加變更列表和其他功能方面做得非常出色。

Git Extensions log view

+6

這是一個非常重要的考慮因素。由於其CVS/SVN傳統,TortoiseGit是面向文件和目錄的。但git本身並不是 - 它是以歷史爲導向的,文件和目錄恰好是歷史關注的東西。實際上,任何通過文件/目錄上下文菜單訪問主要訪問途徑的Git工具都是有缺陷的。這也包括Git擴展。 – Jeremy 2012-12-20 15:45:26

9

只是爲了對付上述的一些言論:

有了正確的預期,TortoiseGit提供了極好的圖形用戶界面的使用Git在Windows上工作。它不是TortoiseSvn的替代品,而是使用gitk + git-gui(可以被認爲是核心git功能的一部分並可在msysgit中訪問)的改進gui。我看到的唯一不好的事情是你不需要記住所有的checkout/rebase/merge等確切的命令,因爲可以通過gui(這是整個點)非常方便地完成所有操作。 putty/ssh問題更多地與Windows上對ssh的低級支持有關,而不是TortoiseGit獨有的。

+1

也支持** TortoiseGit **:1)在沒有GE等幾秒負載延遲的舊PC上,速度要快得多; 2)它允許在默認的diff-viewer中編輯當前文件; 3)它在上下文菜單中有更多的選項; 5)它在提交查看器中具有可配置的列; 5)它介意GUI中的'autocrlf'設置(即,不像GE那樣在分級中重新發出警告); – Annarfych 2016-12-11 04:57:23

+0

只用它openssh而不是膩子和快樂 – 2017-01-25 06:20:06

10

我不能說Git擴展,因爲我從來沒有用過它。純GIT有一些問題。例如,無法整合GVIM。 Tortoise Git有一個集成的編輯器和diff工具(這非常棒),所以這是一個很好的方便。我喜歡Scott Chacon書中的分支圖,並希望TGit會有類似的圖。他們確實有一個顯示分支的工具,但它不如書中的那麼好。

有一點需要記住的是,由於TGit只是GIT之上的一個shell,所以混合這兩種方法並沒有什麼壞處。我使用TGit來處理大多數事情,但是在GIT中使用那些很尷尬的命令,或者我在TGit中很難理解。但即使你打算使用TGit,如上所述,仍然很重要,首先要了解GIT的基本知識。我通讀了Chacon一書中的第一章,即三章(可在http://progit.org/book/上免費在線或在亞馬遜購買)。如果你和我一樣,你可能想多讀幾遍,讓這個範例沉入其中。這並不複雜,但與以前的VCS非常不同。

TGit從來沒有撞到我身上,就像其他一些評論者一樣,但後來我的回購很少。它確實在不止一次的情況下吃了我的提交意見,這可能是用戶錯誤。由於您可以返回並重新編輯註釋,這只是一個煩惱,值得使用GUI的便利性,一眼就能看到大量信息的窗口。

+0

只想評論我有同樣的經歷。使用TGit除非對較不典型的操作更容易使用bash。 TGit有一個偉大的日誌,偉大的內置差異,現在在2016年是堅實的。 – Raj 2016-10-26 01:34:41

5

快速和容易的編輯,定製和大樓的擴建, GitExtensions是更好的(C#)比TortoiseGit(的Visual C++ MFC)

對於便攜性, GitExtensions是在Linux上的Windows /單聲道更好(.NET /蘋果機)比TortoiseGit的(Win32/64只)

要在資源管理器使用圖標疊加,使用TortoiseGit

對於某些功能的性能, TortoiseGit是更好,因爲它調用靜態/動態庫檢索結果從存儲庫中,而GitExtensions只調用具有較大開銷的git.exe命令行。

要遷移在TortoiseSVN, TortoiseGit會更熟悉的莫過於GitExtensions

+1

您不需要專業版的visual studio來編譯GitExtensions,但是您需要TortoiseGit – linquize 2012-09-04 06:27:32

+1

如果您要構建GitExtensions的外殼擴展,則需要專業版。核心部分使用Express Edition進行編譯, – linquize 2013-02-20 01:31:08

+0

TortoiseGit調用libgit2,因此它** **速度更快(大寫且大膽) – 2017-01-25 06:22:11

7

我用GitExtensions。我還沒有使用過TortoiseGit,但我們其他的開發人員都喜歡它,並拒絕使用GitExtensions。他的推理是:1)熟悉; 2)它有很大的Windows資源管理器集成。

使用GitExtensions我傾向於使用只有三樣東西在Windows資源管理器集成:

1)要創建新的本地存儲庫(上下文菜單項的Git初始化這裏,這實際上是Windows命令一個Git; GitExtensions坐鎮在Git for Windows之上);

2)打開Git Extensions GUI(瀏覽窗口);

3)將遠程存儲庫克隆到本地存儲庫(上下文菜單項「Git擴展」>「克隆」)。

對於幾乎所有其他事情,我只需要GitExtensions GUI並從那裏開始工作。

GitExtensions的開發人員聲稱幾乎所有的命令都可以從GUI執行。這並不完全正確,但我發現我只需要在複雜的任務中每月進入一次或兩次命令行界面。

在某些情況下,通過隱藏基礎Git命令的複雜性,GUI使得複雜任務變得簡單。這有時涉及將幾個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,它沒有這個功能,非常方便。對是否存在任何未提交的更改提供即時反饋。