1. 程式人生 > >Git基本概念

Git基本概念

可能 個人 保存 中文 需要 cvs png 和集 方式

集中式版本控制系統:CVS+SVN

先說集中式版本控制系統,版本庫是集中存放在中央服務器的,而幹活的時候,用的都是自己的電腦,所以要先從中央服務器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給中央服務器。中央服務器就好比是一個圖書館,你要改一本書,必須先從圖書館借出來,然後回到家自己改,改完了,再放回圖書館。

技術分享

技術分享

  • 每次修改只能聯網後向遠程提交。
  • 以文件變更列表的方式存儲數據,將保存的信息看做是一組基本文件和每個文件隨時間變化的差異。如下圖:

技術分享

分布式版本控制系統:Git

分布式版本控制系統根本沒有“中央服務器”,每個人的電腦上都是一個完整的版本庫,這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有一個完整的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

和集中式版本控制系統相比,分布式版本控制系統的安全性要高很多,因為每個人電腦裏都有完整的版本庫,某一個人的電腦壞掉了不要緊,隨便從其他人那裏復制一個就可以了。而集中式版本控制系統的中央服務器要是出了問題,所有人都沒法幹活了。

在實際使用分布式版本控制系統的時候,其實很少在兩人之間的電腦上推送版本庫的修改,因為可能你們倆不在一個局域網內,兩臺電腦互相訪問不了,也可能今天你的同事病了,他的電腦壓根沒有開機。因此,分布式版本控制系統通常也有一臺充當“中央服務器”的電腦,但這個服務器的作用僅僅是用來方便“交換”大家的修改,沒有它大家也一樣幹活,只是交換修改不方便而已。

技術分享

技術分享

  • 大部分命令都可以本地提交。
  • 將數據看做是文件系統的一組快照。即,每次提交的時候,對全部文件做一次快照並保存這個快照的索引。沒有改動的文件只保留一個鏈接指向之前的存儲的文件。如下圖:

技術分享

工作區、暫存區、版本庫

  • 工作區:是對項目的某個版本獨立提取出來的內容。 這些從 Git 倉庫的壓縮數據庫中提取出來的文件,放在磁盤上供你使用或修改。
  • 暫存區:一個文件,保存工作區中文件的(id、時間戳、長度等信息),一般在Git倉庫目錄中。有時候也被稱作“索引。使用命令git ls-files --stage來查看其內容。
  • 版本庫:是Git用來保存項目的元數據和對象數據庫的地方。這是Git中最重要的部分,從其它計算機克隆倉庫時,拷貝的就是這裏的數據。
  • 使用git status [-s]來查看文件的狀態。
  • git rm path/to/file將文件從暫存區移除並刪除工作目錄的文件。

Git基本概念