2009-02-13 16 views
32

對於來自更傳統的VCS背景(CVS/SVN)的人來說,學習和遷移到git最有吸引力的理由是什麼?git有什麼了不起的?

請評論一個團隊所需的技術能力,以使git工作。我看到聰明的人爬上學習曲線,仍然失去了一些頭髮。任何人都可以攀登這條曲線,或者不是所有球隊都參加比賽?

當然,我也想聽聽功能性利益,工具的支持,整合其他系統(CI等)...

(這似乎是一個明顯的問題,但我沒有找到一個重複儘管有一些搜索)

編輯鏈接到良好的資源也讚賞。

回答

7

Git很深,起初可能會很棘手。我會說這絕對不適合所有人,特別是如果你有設計師或其他非技術人員需要檢查出入。在我們當前的項目中,我們運行svn後端,三位開發人員選擇使用git,而兩位繼續使用svn,而且內容和效率都很高。

也就是說,git有很多功能。如果不深入git wizardry,您可以快速學會利用其最受歡迎的方面:能夠在本地簽入而不會將上游推向主回購庫,並幾乎完全無憂無慮的分支和合並。

您可以通過一些基本的命令獲得非常令人滿意的git體驗。

在那裏的所有資源中,Scott Chacon的Getting Git就是讓我瞭解git的好處,併爲我提供了推動學習曲線陡峭部分的動力。

19

在我的頭頂:

  • 其分佈方面(每個開發者都有倉庫的副本)
  • 將能夠處理複雜的功能合併很快
  • 從任務切換的可能性任務,擱置他的工作,回到它...
  • 便宜分支(即時開關:它只是在一個文件中寫入幾位!並且它不認爲分支像SVN那樣的目錄)

主要困難是建立不同回購協議之間的,而不會破壞已發佈的內容(推向公共回購)。

alt text

特別是底墊可能很難在第一次正確地使用,因爲它改寫分支的歷史,而且這種變化是與它相關的SHA1:到公共分支,這意味着來自其他開發者的大量合併。

+0

便宜的分支是巨大的。 – mmcdole 2009-02-13 08:34:31

3

我剛開始使用git一個月回來並喜歡它。其快速且易於使用的團隊和個人。這不是很難學,我需要學習沒有新的技術技能來使用git。我知道它支持從CVS/SVN遷移。最好的部分是,你仍然可以維護一個CVS/SVN風格的工作流程。

我建議在看git的維基:http://git.or.cz/gitwiki 和官方網站:http://git-scm.com/

我希望這可以幫助你享受使用Git。

4

GIT中是極其快速和以非常緊湊的方式存儲存儲庫(認爲十分之一至百分之一的相同的代碼庫+歷史在SVN的大小)。 Git(以及大多數分佈式VCS)爲您提供便宜的分支機構,這些分支機構可以毫不費力地產生,處理和合並。除非有積極的努力分享,否則這一切都是在當地發生的,團隊成員不會被隊友正在進行的工作分心。移動到分佈式VCS將導致開發風格的一些變化,一些開發人員會喜歡,但其他人可能會討厭。毫無疑問git是一個複雜的野獸,有許多路徑可以達到相同的結果。在將團隊遷移到git中時,您需要投入一些時間來學習這些路徑,然後爲常見場景勾畫出工作流程和備忘單。

我建議你先熟悉它作爲一個客戶端,交談github或類似的工具。

關於你提到使用它的設計師和技術少人的問題,我會說,如果工作流程和命令都非常有據可查的,然後用一些訓練,他們應該能夠加快速度就可以了。他們是否會感激它是另一個問題! :-)

一個工具值得一試是review board,這是一個夢幻般的團隊代碼審查的工具,似乎有一個git插件。

2

很多人談論的是如何複雜的git的使用,但它是沒有價值,如果你堅持一個非常簡單的使用方式的Git沒有任何複雜得多,說的RCS。

使用你自己的語言環境版本控制的git(爲同類你會使用RCS的東西)是我認爲比使用RCS容易。

當然,當你將它用於大量人員和大量分支等項目時,它可能比傳統的版本控制系統更復雜。

就我個人而言,我主要將它用於個人項目和在工作中進行本地修訂控制。我們在工作中使用perforce,他們對我們可以在檢查的分支數量方面非常嚴格。我們必須檢查完成的,可編譯的,可測試的代碼塊。

我經常在做更大型的重構​​工作,並在同一時間做更小的修復。我發現與perforce混雜在一起非常困難。但通過git,我可以在不同的實驗中使用大量的小型區域分支,重構和修復bug。

所以對我來說混帳的大賣點是:

  • 支持區域簽到(我可以在我的工作檢查步驟之前,我承諾主庫
  • 輕鬆便捷,使很多。區域分支和它們之間的切換。

最後一點的原因是git將所有分支保存在同一個目錄中,因此你可以用git命令在它們之間進行交換並保持相同的位置。我喜歡這一點,因爲這意味着我不必爲每次分支時爲我的IDE設置一個新目錄的配置文件,也不用浪費大量的空間來避免瘋狂的分支數量。

2

GIT的故事是FOSS歷史上的一個經典。 查看維基百科中的Git的history。 該故事的標籤:BitKeeper,Andrew Tridgell,Torvalds,Git,在2天內自行託管

嗯,不是一個答案,有FOSS /黑客態度的人肯定會喜歡閱讀它。

5

Github!真的,我只學會了使用github來欣賞git。

3

我意識到這是一個關於Git的問題,但OP應該認識到許多好處適用於所有主要的分佈式版本控制系統。 Git,Mercurial和Bazaar都有自己的優勢和劣勢,所以你應該研究這三者並決定哪一種最適合你的工作方式和項目。