版本控制簡介和工具


一、知識點

> 版本控制是一種記錄一個或若干文件內容變化,以便將來查閱特定版本修訂情況的系統

> 實際上可以對任何類型的文件進行版本控制。

1.1 特點

  • 每次修改后進行提交,這樣就可以在需要的時候將某個文件回溯到之前的狀態。
  • 可以比較文件的變化細節,查出最后是誰修改了哪些地方,從而找出導致怪異問題的原因。
  • 就算你胡亂地把整個項目的文件改得面目全非,你照樣可以輕松恢復到原來的樣子。

二、版本控制方案

2.1 本地版本控制

  • 大多都是采用某種簡單的數據庫來記錄文件的歷次更新差異。
  • 其中最流行的一種叫RCS,現今許多計算機系統上都還看得到它的蹤影。 甚至在流行的 Mac OS X 系統上安裝了開發者工具包之后,也可以使用 rcs 命令。

本地版本控制

2.2 集中化的版本控制

  • 解決不同系統上的開發者協同工作。
  • 管理員可以輕松掌控每個開發者的權限。
  • 代表軟件:CVSSubversionPerforce
  • 多年以來,這已成為版本控制系統的標准做法。

事分兩面,有好有壞。 這么做最顯而易見的缺點是中央服務器的單點故障。如果宕機一小時,那么在這一小時內,誰都無法提交更新,也就無法協同工作。 如果中心數據庫所在的磁盤發生損壞,又沒有做恰當備份,毫無疑問你將丟失所有數據——包括項目的整個變更歷史,只剩下人們在各自機器上保留的單獨快照。

集中化版本控制

2.3 分布式版本控制

  • 客戶端並不只提取最新版本的文件快照,而是把代碼倉庫完整地鏡像下來。
  • 每一次的克隆操作,實際上都是一次對代碼倉庫的完整備份。
  • 任何一處協同工作用的服務器發生故障,事后都可以用任何一個鏡像出來的本地倉庫恢復。
  • 代表軟件:GitMercurialBazaar 以及 Darcs

許多這類系統都可以指定和若干不同的遠端代碼倉庫進行交互。籍此,你就可以在同一個項目中,分別和不同工作小組的人相互協作。 你可以根據需要設定不同的協作流程,比如層次模型式的工作流。

分布式版本控制

三、流行的版本控制軟件

3.1 Git

> Git是開源的分布式版本控制系統。

> Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。

> Git是用C語言開發的。

在windows上的安裝

Git for Windows - msysGit

TortoiseGit - 右鍵菜單式簡易操作

在Linux上的安裝

> Git 官方網站上有在各種 Unix 風格的系統上安裝步驟,網址為 http://git-scm.com/download/linux

在Mac上的安裝

> 最簡單的方法是安裝 Xcode Command Line Tools。

Mavericks (10.9) 或更高版本的系統中,在 Terminal 里嘗試首次運行 git 命令即可。

官方維護的 OSX Git 安裝程序

3.2 SVN

> SVN是一個開放源代碼的版本控制系統。

> SVN采用了分支管理系統,它的設計目標就是取代CVS。

> SVN可以針對各個目錄分別進行權限控制。

在Windows上的安裝

服務端 - VisualSVN Server

客戶端 - TortoiseSVN

VS插件 - VisualSVN for Visual Studio X

四、 參考資料

  • Git-Book - The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM