什麼是版本控制系統(VCS)?

2021-07-06 08:21:57 字數 1153 閱讀 1629

因為最近準備開始使用git管理自己的專案,所以把在學習git的過程中看到的幫助文件、網友的一些經驗心得等內容整理下來,逐步形成自己的使用筆記,以便日後查閱。

版本控制系統是一種記錄乙個或若干檔案內容變化,以便將來查閱特定版本修訂情況的系統。版本控制系統不僅可以應用於軟體源**的文字檔案,而且可以對任何型別的檔案進行版本控制。

為了讓不同系統上的開發者能夠協同工作,集中化的版本控制系統應運而生(cvcs)。這類系統都有乙個單一的集中管理的伺服器,儲存所有檔案的修訂版本。而協同工作的人們都通過客戶端連線到這台伺服器,獲取最新的檔案或者提交更新。集中化的版本控制系統,最顯而易見的缺點是**伺服器的單點故障問題。如果宕機,那麼就會出現誰都無法提交更新的情況,那麼也就無法協同工作;如果磁碟發生故障,而備份又不夠即時,那麼就有丟失資料的風險,最壞的情況是丟失整個專案的歷史更改記錄。因此,分布式版本控制系統問世了(dvcs)。

在分布式版本控制系統中,客戶端不僅僅是只提取最新版本的檔案快照,而是把**倉庫完整的映象下來。所以每一次提取的操作,都是對**倉庫的完整備份,因此也就不必擔心協同工作用的伺服器發生故障。

git和其他版本控制系統的主要差別在於:git只關心檔案資料的整體是否發生了變化,而多數的其他系統則只關心檔案內容的具體差異,它們在每個版本中記錄著各個檔案的具體差異。在git中的絕大多數操作都只需要訪問本地檔案和資源,不需要聯網。這是因為git在本地磁碟上就保留著所有當前專案的歷史更新,所以處理起來速度飛快,這是使用空間換時間的處理方式。使用git,即使在沒有網路或vpn的情況下,你同樣可以非常愉快的頻繁提交更新,等到有了網路的時候再提交到遠端的倉庫。

git管理中檔案的三種狀態

對於任何乙個檔案,在git內部都只有三種狀態:已修改,已暫存和已提交。

已修改 表示修改了某個檔案,但還沒有提交儲存;

已暫存 表示把已修改的檔案放在下次提交時要儲存的清單中了;

已提交 表示該檔案已經被安全的儲存在本地資料庫中了。

git在管理專案時,檔案流轉的三個工作區域是:本地倉庫(即工作目錄,也就是專案的原始檔)->暫存區域->git的工作目錄。因此,基本的git工作流程如下:  在本地的工作目錄修改某些檔案;然後對修改後的檔案進行快照,儲存到暫存區域;最後提交更新,將儲存在暫存區域中的檔案快照永久轉存到git的工作目錄中。

如圖所示,基本的git工作流程:檔案在工作目錄、暫存區域、git目錄之間的流轉。

Git 1 什麼是版本控制系統(VCS)

很多人認為 git 難以理解的第乙個門檻在於 所謂 的 git 是乙個分布式版本控制系統 這句話的具 體含義不夠清楚。其實分布式版本控制系統 distributed version control system dvcs 這個定義並不難,不過一步一步來,我先 告訴你,什麼是版本控制系統 versio...

版本控制系統VCS小結

1.版本控制系統,version control system,簡稱vcs。2.vcs的分類 a 本地版本控制系統 本地版本控制系統大多都是採用某種簡單的資料庫來記錄檔案的歷次更新差異。這類的vcs有rcs等等。其架構圖如下 b 集中式版本控制系統 集中式的版本控制系統有乙個單一的集中管理的伺服器,...

版本控制系統

linux一直痛恨的cvs及svn都是集中式的版本控制系統,而git是分布式版本控制系統,集中式和分布式版本控制系統有什麼區別呢?1 集中式版本控制系統 代表 svn cvs 版本庫是集中存放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從 伺服器取得最新的版本,然後開始幹活,幹完活了,再...