2010-02-10 129 views
3

當前是我使用SVN的一部分。我們正在考慮轉向git。我個人使用過git(並且實際上是使用git-svn橋接到主要的SVN存儲庫),所以我相信它的好處。學習使用git或通過SVN進行版本控制?

一個問題是git比SVN更復雜。我們有一些從一開始就需要學習版本控制的全新人物。有沒有人有直接跳入git來教授版本控制的經驗?我想知道它是否會太多,或者如果它可能更容易沒有了解SVN的期望。

有沒有人有過任何一種方法的經驗 - 直接跳入git,或先熟悉svn?

+7

如果他們沒有任何背景的版本控制,我認爲這將是好讓他們直接跳到飯桶。對於什麼是正確的事情沒有任何先入之見。有時候,當人們對舊概念感到太過興奮時,人們很難學習新東西,例如:必須鎖定更改和基於文件的版本控制工具。 – 2010-02-10 18:58:29

回答

8

我認爲這可能取決於用戶數量和設置,對於沒有太多分支機構或特殊功能的小型用戶羣學習Git實際上非常簡單,源代碼控制的核心概念是相同的。開始出現分歧的是當你有多個分支機構和開發人員獲得更復雜的項目管理策略時。

所以,如果你有一個小團隊,我會說直接跳入Git。

如果你有一個更大的團隊,並且直接跳入Git,那麼一旦你更好地理解了系統,你可能需要重新配置你在以後如何設置你的倉庫。

0

我不知道這是更好,但混帳暴露出一些「更高層次」想着,我希望當所有我知道的有svn的我甚至知道源代碼控制...

如果您可以處理學習曲線,我會推薦git。

+5

git沒有很高的學習曲線。 svn具有很高的學習曲線。與不熟悉的人一起工作時,您可以觀察到不同之處。 – Dustin 2010-02-10 19:22:29

9

使用你將要使用的東西。沒有理由浪費時間去選擇不適用於您的生產環境的習慣。源頭控制不是腦部手術 - 不要讓它比它更難。

+0

我發現一次又一次,開發團隊通過濫用源代碼管理系統而陷入麻煩,使其過於複雜和難以維護。僅僅因爲一個系統可以做某件事,並不意味着這是做這件事的最好方式。把事情簡單化 :) – 2010-02-11 23:54:21

0

我處於類似的位置:使用git-svn而其他人使用普通svn。我們的差異是我們從VSS轉向SVN。試圖教人們有關原子提交已經夠難了,我認爲我們不會嘗試強制使用git。

如果你有新鮮的人我會去的git直,因爲版本控制這麼多引人注目的,當你有本地提交和

底墊的混帳-i

4

學習曲線是純粹的地獄。一點點學習是容易的,但也是危險的:-)然而,在很多方面它是一個很好的工具,我不認爲你的用戶將通過首先學習svn得到很好的服務。 git的許多優點(分支和合並,克隆,斷開提交)在svn環境中沒有意義,或者它們的工作方式不同。

這裏有一些事情,我告訴人們,當我教他們的git:

  • 開始Git Magic
  • 不要指望一切都有意義。
  • 在表面層面上,git命令看起來非常強大和正交,所以很多組合都可以工作。不要被愚弄。並非所有組合都可行例如,從不嘗試推送到檢出工作文件的存儲庫,特別是如果它們有更改。即時損失!
  • 堅持git的設計模式:每個開發人員都維護一個工作回購和公共回購。您可以更改您的工作回購協議,將它們推送到您的公共回購協議中,並從其他開發人員的公共回購協議中撤回。
  • 不要忘記拉不是的雙推;一拉也會合並。
  • 不要忘記,只有在提交所有本地更改之後,您才能合併。
  • 要管理提交和索引,使用git-gui :-)