版本控制系統的話題可能有點過大教爲問答&這樣的網站堆棧溢出的一部分。當然歡迎您提問關於它們的問題,但「任何人都可以告訴我所有我需要了解的信息」可能不是正確的地方。
如果你有興趣在分佈式版本控制系統,因爲你所提到的git,你應該看一看hginit.com。儘管該網站描述了Mercurial,但大部分(如果不是全部)也適用於git。
至於創建這些文件夾的建議,完全取決於您決定使用的版本控制系統。
Subversion使用文件夾級別的「副本」來創建分支。把它想象成同時在磁盤上有多個副本,並且Subversion允許你將變化從一個文件夾合併到另一個文件夾,並跟蹤你合併了什麼,什麼時候以及在哪個方向。
對於DVCS」,這是沒有必要的,因爲分支以不同的方式進行,因此你不需要這些目錄。
您列出可以概括如下(注意,由於我使用的水銀,我可能會通過它們在該系統中有色)詞彙:
- 幹線 - 你的主要發展線。如果你沒有源代碼管理,那麼這就是你一直工作的地方。
- 標籤 - 一個標籤是一個輕量級的標記,將其視爲一個postit記事,將其粘貼到您的項目的某個版本上,以便以後可以回答問題「嗯,我想知道所有源文件看起來像當我發佈版本1.0「
- 分支 - 分支是您的項目的平行宇宙副本,可能與變化。例如,當你發佈1.0版本時,你可能會創建該標籤,但你也可以創建一個分支。然後,在主幹上,您將開始工作到版本2.0或1.1,並且如果您需要發佈修補程序1.0來修復錯誤,那麼您將在該分支上執行這些修復。
- 合併 - (修改或分支機構,這不同於系統到系統)當你有多個分支,你可以問你的版本控制系統,以幫助您通過將它們合併在一個分支進行到另一個變化
- 變更集/修訂版 - 近似同義詞,表示您同時進行的一組更改。它可能是修復一個特定的bug,或添加一個特定的功能。變更集可以包含對許多文件的更改,甚至包含新文件或不再需要的文件刪除。
Wikipedia article on Revision control也有相當多的有用信息。
Mercurial glossary也列出了Mercurial中相當多的術語及其用法,並且許多版本控制系統中的許多信息都是正確的。
無論如何,這是一個典型的(對我而言)做一個項目的方式。
- 您創建初始項目庫,只有主分支裏(主幹線在Subversion中,默認情況下,水銀,主人?我覺得在GIT)
- 然後你開始你的項目中,你經常犯,你建立了一個很好的變更集列表
- 在某些時候,你準備發佈1.0版本,所以你創建了這個標籤,並且在那個點上創建了一個名爲「1.0」的分支,然後你釋放你的軟件
- 然後,您繼續工作,朝着版本1.1或2.0,具體取決於
- 在某些點你有一個1.0客戶發現的錯誤列表
- 你修復這些錯誤在trunk/default/master中,以便下一個大版本至少有這些錯誤修正,然後你將這些修改合併回到1.0
- 當1.0所有已知的bug已經修復,您標記,作爲1.01,並釋放
- 然後再重新打開2.0
- 工作在2.0準備好釋放,你標記和分支再等
這只是一種方法,它有很多。如果你問他們,人們會告訴你他們喜歡的方式,我不會說我的方式是對的。
謝謝你花時間回答:)我並不真的搜索版本控制系統的所有內容很多像堆棧溢出這樣的網站;)我只是想知道一些「基礎知識」,如干線標籤分支的東西(換句話說,一般的開發過程如何);所以有些東西開始「理解」並繼續我對這些系統的研究 – tbolender 2011-04-24 22:47:29
我已經編輯了一些更多的細節。請注意,有可能沒有正確的方法來做到這一點,但有很多不好的方法可以做到這一點,好的方法以不同的方式很好。我建議你先決定是否要使用集中版本控制系統或分佈式版本控制系統(即。Subversion vs. Mercurial/git),然後閱讀它們各自的工作方式。細節決定成敗。然而,我的建議是配合DVCS,因爲我使用Mercurial,當然Mercurial是最好的:) – 2011-04-24 22:56:42
「更多的細節」o_O。順便說一句,答案本身+1,並提到mercurial作爲一個起點。 – zerkms 2011-04-24 23:00:42