2011-11-15 37 views
9

我一直是一個非常狂熱的git用戶很長一段時間了。不過我經常注意到,經驗豐富的SVN用戶似乎在使用git時遇到了很多問題。現在我正在尋找資源,讓那些習慣了長時間使用SVN並且養成SVN怪癖習慣的人們更容易使用git。SVN用戶Git

我知道有git svn crash course,但這並不能真正提供我需要的信息。雖然這很容易將常見的SVN命令映射到類似的Git命令,但人們傾向於使用更復雜的工作流程,這些工作流程通常不容易通過將命令從一個工具映射到另一個工具來輕鬆映射。

例如,我所知道的很多人通常傾向於將版本化軟件的多個版本保存在不同的目錄中,以便能夠在修訂之間輕鬆切換。對我來說,這似乎是Git通過git stash,git checkout工作流程輕鬆處理的一種解決方法。我還注意到使用SVN的人傾向於對分支機構進行不同的思考。而在SVN中,所有來自分支的提交完全屬於該分支(因爲它們涉及該目錄),實際上不存在「來自分支的提交」這樣的事情,因爲每個分支將包括從當前分支狀態可達到的所有提交。

是否有任何教程,它映射這些概念,使Git更容易被SVN用戶使用它?

+0

雖然它不具有任何特定的方位,以SVN用戶,我發現「臨Git的」(HTTP: //progit.org/book/)是一個很好的資源,作爲一個很長時間的SVN用戶來到Git。 – madth3

回答

4

在我看來,嘗試使用svn術語來描述Git,反之亦然,將是徒勞的任務。我認爲這兩者是根本不同的。

在我看來,最好的方法是告訴用戶儘量忘記他們對svn的瞭解,並以開放的心態學習Git。

1

我認爲來自SVN思維方式的人的關鍵區別在於,git尊重「檢入代碼」和「與團隊共享代碼」作爲不同的操作,其中SVN將它們在提交子命令中混合在一起(以及經驗豐富的SVN用戶甚至沒有意識到他們是獨特的行爲 - 我沒有)。這是什麼使分支的自由和選項重新排序和壓縮提交,所以理解這是至關重要的。

另一件事真的幫了我什麼對存儲庫結構的描述,主要是這些頭只是提交對象的指針。

2

我們只是有一個SVN工作到Git遷移後。最重要的一件事就是不要嚇到用戶。不熟悉的工具讓人感到不舒服。這就是爲什麼儘可能平滑過渡至關重要。

  • 幫助設置。 SVN用戶可能不知道如何設置ssh密鑰
  • 首先告訴他們相似之處。這些命令是非常相似
    • git的承諾
    • git的日誌
    • 的Git分支
    • 混帳一段時間,你可以提出更高級的主題
    • 給人們使用時間後合併
  • 他們在新系統上的舊工作流程以及何時準備進入下一級目前的高級主題

並非所有人都會以相同的速度前進,有些人甚至可能會使用Git來替代SVN。這本身不是問題。更重要的是那些願意學習更多知識的人以及那些想要使用該工具的人,它的設計和獲得適當的支持。他們會幫助別人取得進展。

我們試圖建立一個沒用的操場。幾乎所有不知道Git的人都沒有嘗試過任何東西。 他們只是想完成他們的工作。並沒有時間玩...

總而言之,這是一個很好的成功,有很多人開始使用高級功能。我不會夢想,人們會在發佈後兩個月內與多個遙控器一起工作,但他們是。他們像專業人員一樣分支合併,當他們遇到問題時他們會問。

爲了託管我們的存儲庫,我們決定建立一個內部服務器Gitorious。這有很大的優勢。首先它帶有一個設計良好的UI,其次是Rails。如果您瞭解MVC,則可以輕鬆地根據您的需求對其進行定製。

+0

+1用於'使用舊工作流程的時間'。擁有集中式存儲庫的Git支持類似SVN的模型。對很多人來說,這很好。 – Barend