1. 程式人生 > >版本控制工具(CVS、SVN、GIT)簡介

版本控制工具(CVS、SVN、GIT)簡介

1 版本控制工具的功能:

版本控制工具:
提供完備的版本管理功能,用於儲存、追蹤目錄(資料夾)和檔案的修改歷史,是軟體開發者的必備工具,是軟體公司的基礎設施。版本控制軟體的最高目標,是支援軟體公司的配置管理活動,追蹤多個版本的開發和維護活動,及時釋出軟體。

2 版本控制軟體有:

CVS 、Visual SourceSafe、PVCS 、SVN、GIT……

CVS(Concurrent Versions System簡介:

  • 是開發原始碼的併發版本系統 。
  • 它可用於各種平臺,包括 Linux 、Unix和 Windows NT/2000/XP等。
  • CVS免費開源,對專案進行版本管理。

2.1 功能介紹:

一、 程式碼統一管理,儲存所有程式碼檔案更改的歷史記錄。對程式碼進行集中統一管理,可以方便檢視新增或刪除的檔案,能夠跟蹤所有程式碼改動痕跡。可以隨意恢復到以前任意一個歷史版本。並避免了因為版本不同引入的深層BUG。
二、 完善的衝突解決方案,可以方便的解決檔案衝突問題,而不需要藉助其它的檔案比較工具和手工的貼上複製。
三、 程式碼許可權的管理。可以為不同的使用者設定不同的許可權。可以設定訪問使用者的密碼、只讀、修改等許可權,而且通過CVS ROOT目錄下的指令碼,提供了相應功能擴充的介面,不但可以完成精細的許可權控制,還能完成更加個性化的功能。
四、 支援方便的版本釋出和分支功能。

3 SVN(Subversion)簡介:

  • SVN全名Subversion,即版本控制系統。SVN是Subversion的簡稱,是一個開放原始碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。網際網路上很多版本控制服務已從CVS遷移到Subversion。

  • SVN是一種集中式檔案版本管理系統。

  • 集中式程式碼管理的核心是伺服器,所有開發者在開始新一天的工作之前必須從伺服器獲取程式碼,然後開發,最後解決衝突,提交。所有的版本資訊都放在伺服器上。如果脫離了伺服器,開發者基本上是不可以工作。

3.1 (SVN)集中式管理的工作流程:

集中式程式碼管理的核心是伺服器,所有開發者在開始新一天的工作之前必須從伺服器獲取程式碼,然後開發,最後解決衝突,提交。所有的版本資訊都放在伺服器上。如果脫離了伺服器,開發者基本上是不可以工作。
管理流程如下圖:
這裡寫圖片描述

4 Git 簡介:

  • Git是一個開源的分散式版本控制系統,用以有效、高速的處理從很小到非常大的專案版本管理。Git 是 Linus Torvalds 為了幫助管理 Linux 核心開發而開發的一個開放原始碼的版本控制軟體。

  • Git 可以儲存任何文件,最善於儲存文字文件,因為它本來就是為解決軟體原始碼 (也是一種文字文件)版本管理問題而開發的,提供了許多有助於文字分析的工具。對於非文字文件,Git 只是簡單地為其進行備份並實施版本管理。

5 GIT開發工具的原理(與SVN不同):

分散式與集中式最大的區別:
在於開發者可以本地提交,每個開發者機器上都有一服務資料庫。
流程如下圖:
這裡寫圖片描述

6 小結:

Git是一款分散式的版本控制軟體,相比SVN,功能更強大,自然而然操作更復雜一些。git在本地也是以git版本庫的形式管理,而SVN在本地管理的僅是一個版本庫的副本
Git和SVN相比,有很明顯的一個不同點:
git你可以在本地做一些修改,然後commit到本地的版本庫,最後push到伺服器,而SVN只要一commit,更改就已經提交到伺服器。