我已經使用「傳統」版本控制系統來維護過去項目的源代碼庫。我正在開發一個分佈式團隊的新項目,我可以看到使用分佈式系統的優勢。鑑於我理解SourceSafe,CVS和Subversion;你對Git新手有什麼建議?我開始使用Git之前應該知道些什麼?
回答
Git - SVN Crash Course是一個很好的讀書。
在提交文件之前,必須將它們添加到Git臨時區域— 每隔時間。爲了使這更容易,有一個-a
選項來添加所有跟蹤的文件,如git commit -a
。
此外,當你做git diff
時,它只顯示你的工作副本和暫存區域內的區別。如果您已將更改的文件添加到暫存區域,即使您可能有未提交的更改,git diff
也可能不會報告任何內容。確定使用git status
進行查看。
我在我的公司試過git。 我們使用CVS並希望轉移到更好的VC工具。 我們選擇git作爲文件版本控制的最佳工具(Linus on GIT)。 它的性能僅僅是最好的,對於深入理解版本控制的開發人員來說,它是一個非常好的工具,但是對於在後臺使用版本控制並且不想學習如何使用更多的開發人員而言,這是一場噩夢。 (而且他們確實需要學習很多)
而且它與現有IDE的集成對於完成來說是遠遠不夠的。 對於一個普通的開發人員來說,整個可用性是一個相當大的問題。
經過4名開發人員的試點後,我們轉而使用Subversion作爲最簡單的工具。
還有Subversion的多點會議商業解決方案(我們沒有嘗試,但仍然會嘗試不久) - WANDisco
在我自己的經驗移動從Subversion到Git的,最重要的是你不用什麼學習,但你需要忘掉。分佈式版本控制是很不同於集中版本控制。 CVC是DVC的一個子集,因此您可以在DVC工具中執行CVC,但這比使用CVC工具更復雜。
嘗試重新學習CVC,並獲得DVC的心態。如果您最終只是在DVC工具中使用CVC,那麼您只會因所有增加的複雜性而感到沮喪,並且您不會意識到增加的複雜性會在靈活性方面購買您。
所有的DVC工具都有很好和非常強大的支持分支和合並。用它。所有的歷史都在您的指尖。用它。 (例如:從不註釋掉代碼,只需刪除它即使在沒有互聯網連接的飛機上也可以隨時取回。)
Git的一個非常重要的方面:所有其他工具都有或多或少的定義工作流程。 Git沒有。 Git是DVCS工作流程構建工具包。這使得有時很難知道該怎麼做:必須設計和實現自己的工作流程(提示:使用大量的shell腳本)。我現在使用Git已經有一年多了,而且我還沒有完全弄清楚我的工作流程。
- 1. 我開始使用媒體基礎變換之前應該知道些什麼?
- 2. 在作爲asp.Net開發人員轉到extJs之前應該知道些什麼?
- 3. 在將JavaScript文件合併爲一個之前我應該知道些什麼?
- 4. 在開始apache solr之前應該知道的事情?
- 5. 在使用IM應用程序之前,我需要知道些什麼?
- 6. CasperJs在開始之前做些什麼?
- 7. 關於開發64位應用程序,我應該知道些什麼?
- 8. 我應該知道什麼來開發p2p小應用程序
- 9. 關於F#CTP我應該知道些什麼?
- 10. 我們什麼時候知道我們應該使用符號?
- 11. 在開始使用流星之前,我應該學習node.js嗎?
- 12. 我應該爲git user.name使用什麼?
- 13. 從數據集轉移到Linq2Sql之前我應該知道什麼?
- 14. 開發人員設計師 - 我應該知道什麼?
- 15. 我需要知道什麼時候應該使用wp_redirect()?
- 16. 開始Android開發之前我應該學習哪些設計模式
- 17. 爲了開始全職IOS開發,我需要知道些什麼?
- 18. 在開始使用Lift之前,我需要學習什麼?
- 19. 在Prestashop開始模塊開發之前,我想知道主要的知識點?
- 20. 在Windows 7上開發.NET之前,我應該考慮什麼?
- 21. 爲什麼遠程git服務器應該有 - 不知道
- 22. 我應該知道開始編碼爲Android
- 23. 何時/爲什麼我應該開始使用數據庫?
- 24. 開發人員在構建手機應用程序之前應該知道什麼?
- 25. 開發可互操作的WCF Web服務時應該知道些什麼?
- 26. 提交之前知道GIT哈希?
- 27. 什麼是WCF?在學習WCF之前應該知道哪種語言?
- 28. 使用asp.net mvc之前應該從哪裏開始?
- 29. Ruby和Rails開發人員應該知道什麼?
- 30. C#/ .Net/WPF開發人員應該知道什麼?
...除非你命令「git diff foo/bar.file」 – 2008-09-24 12:56:34