一、何謂版本控制 它是一種軟體工程籍以在開發的過程中,確保由不同人所編輯的同一檔案都得到更新,它透過文檔控制記錄程式各個模塊的改動,併為每次改動編上序號,並且編輯錯誤之後還可以回溯到以前的版本 二、可供我們選擇的版本控制系統 1、VCS (本地版本控制) 2、VSS、CVS(集中版本控制) 3、Cl ...
一、何謂版本控制
它是一種軟體工程籍以在開發的過程中,確保由不同人所編輯的同一檔案都得到更新,它透過文檔控制記錄程式各個模塊的改動,併為每次改動編上序號,並且編輯錯誤之後還可以回溯到以前的版本
二、可供我們選擇的版本控制系統
1、VCS (本地版本控制)
2、VSS、CVS(集中版本控制)
3、ClearCase、SVN、Perforce、TFS(集中版本控制)
4、Mercurial(水銀/水星)、Git(分散式版本控制)
差異:
1.Git和其他版本控制系統的主要差別在於:Git只關心文件數據的整體是否發生了變化,而多數的其他系統則只關心文件內容的具體差異,它們在每個版本中記錄著各個文件的具體差異。
2. Subversion是一個版本控制系統,相對於的RCS、CVS,採用了分支管理系統,它的設計目標就是取代CVS,優於CVS之處 原子提交。一次提交不管是單個還是多個文件,都是作為一個整體提交的。
3. 分散式版本控制系統(Distributed Version Control System,簡稱 DVCS)面世了。在這類系統中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客戶端並不只提取最新版本的文件快照,而是把代碼倉庫完整地鏡像下來。這麼一來,任何一處協同工作用的伺服器發生故障,事後都可以用任何一個鏡像出來的本地倉庫恢復。因為每一次的克隆操作,實際上都是一次對代碼倉庫的完整備份。
三、svn與git
1)適用對象不同。Git適用於參與開源項目的開發者。他們由於水平高,更在乎的是效率而不是易用性。Svn則不同,它適合普通的公司開發團隊。使用起來更加容易。
2)使用的場合不同。Git適用於通過Internet,有多個開發角色的單個項目開發,Svn適合企業內部由項目經理統一協調的多個並行項目的開發。
3)許可權管理策略不同。Git沒有嚴格的許可權管理控制,只要有帳號,就可以導出、導入代碼,甚至執行回退操作。Svn則有嚴格的許可權管理,可以按組、按個人進行針對某個子目錄的許可權控制。區分讀、寫許可權。更嚴格的,不支持回退操作。保證代碼永遠可以追蹤。
4)分支(branch)的使用範圍不一樣。Git中,你只能針對整個倉庫作branch,而且一旦刪除,便無法恢復。而svn中,branch可以針對任何子目錄,它本質上是一個拷貝操作。所以,可以建立非常多、層次性的branch,並且,在不需要時將其刪除,而以後需要時只要checkout老的svn版本就可以了。
5)基於第三點,Git適用於單純的軟體項目,典型的就是一些開源項目,比如Linux內核、busybox等。相反,Svn擅長多項目管理。比如,你可以在一個svn倉庫中存放一個手機項目的bsp/設計文檔/文件系統/應用程式/自動化編譯腳本,或者在一個svn中存放5款手機項目的文件系統。git中必須建立n(項目數)*m(組件數)個倉庫。Svn中只需要最多n或者m個就可以了。
6)Git使用128位ID作為版本號,而且checkout時要註明是哪個branch,而svn使用一個遞增的序列號作為全局唯一的版本號,更加簡明易懂。雖然可以使用gittag來建立一些文字化的別名,但是畢竟那隻是針對特殊版本。
7)可跟蹤性,git的典型開發過程為:建立分支,進行開發,提交到本地master,刪除分支。這樣做的後果是以前的修改細節會丟失。而在svn下做同樣的事情,不會丟失任何細節。這裡是一個有趣的鏈接,表明瞭git下典型的工作方式:(以master為核心,不斷創建新branch,刪除舊branch):
http://www.kernel.org/pub/software/scm/git/docs/howto/separating-topic-branches.txt
8)局部更新,局部還原。SVN由於是在文件夾建立一個.svn文件夾來實現管理,所以可以很簡單實現局部更新或者還原。假如你只希望更新某些部分,則svn可以很好實現。同時代碼寫錯了,同時可以很好實現局部還原,當然git也可以通過歷史版本還原,但是無法簡單地實現局部還原。
四、svn常規操作
1.TortoiseSVN官網地址:http://tortoisesvn.tigris.orgCheckout下載與電腦對應的軟體。
2.ckeckout(檢出) 點擊滑鼠右鍵checkout選項指定資源庫,導出地址點擊ok即可。
3.添加文件或者文件夾 在檢出的文件中進行操作,首先在裡面添加文件或者文件夾-->滑鼠
右鍵點擊tortoiseSVN選項-->add-->SVN commit
4. 把一個項目文件夾發佈到SVN伺服器上 在eclipse上配置svn插件http://subclipse.tigris.org/update_1.12.x
滑鼠右鍵-->team-->share project-->SVN-->next-->finish
5. Update更新 滑鼠右鍵-->team-->update
6. Export導出 滑鼠右鍵-->tortoiseSVN選項-->export
7. 歷史版本 eclipse 右鍵-->team-->顯示歷史資源版本 文件夾 右鍵-->tortoiseSVN選項-->show log
8. 鎖定 滑鼠右鍵-->tortoiseSVN選項-->get lock
9. 備份 文件操作 滑鼠右鍵-->tortoiseSVN選項-->export
10. 分之 eclipse 滑鼠右鍵-->team-->分之/標記 指定分之名-->滑鼠右鍵-->team-->update
文件滑鼠右鍵-->tortoiseSVN選項-->branch/tag
11.衝突 當不同用戶同時操作一行代碼的時候,提交會有衝突,update即可。