git 理論部分:
是乙個開源的分布式版本管理系統,可以有效的對軟體系統版本進行管理,
無論哪種儲存系統大體分為三種形式:
local : 本地 單機儲存
集中式: 有中心節點, 集中式管理
分布式:分布式在每個節點上都有完整資料
集中式管理與分布式管理區別:
cvs及svn都是集中式的版本控制系統,而git是分布式版本控制系統,集中式和分布式版本控制系統有什麼區別呢?
集中式版本,版本庫都存放在**伺服器上,客戶端需要先分別從**伺服器上獲取內容,在進行修改後在將自己修改的的版本推送給**伺服器
缺點:集中式版本控制系統最大的毛病就是必須聯網才能工作,如果在區域網內還好,頻寬夠大,速度夠快,可如果在網際網路上,遇到網速慢的話,可能提交乙個10m~20m的檔案就需要10分鐘甚至更多時間,這還不得把人給急死啊。
那分布式版本控制系統與集中式版本控制系統有何不同呢?首先,分布式版本控制系統沒有「**伺服器」,每個人的電腦上都是乙個完整的版本庫,這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有乙個完整的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了檔案fiel,你的同事也在他的電腦上改了檔案file,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。
和集中式版本控制系統相比,分布式版本控制系統的安全性要高很多,因為每個人電腦裡都有完整的版本庫,某乙個人的電腦壞掉了不要緊,隨便從其他人那裡複製乙個就可以了。而集中式版本控制系統的**伺服器要是出了問題,所有人都沒法幹活了。
在實際使用分布式版本控制系統的時候,其實很少在兩人之間的電腦上推送版本庫的修改,因為可能你們倆不在乙個區域網內,兩台電腦互相訪問不了,也可能今天你的同事病了,他的電腦壓根沒有開機。因此,分布式版本控制系統通常也有一台充當「**伺服器」的電腦,但這個伺服器的作用僅僅是用來方便「交換」大家的修改,沒有它大家也一樣幹活,只是交換修改不方便而已。如上圖!
git的功能特性
從一般開發者的角度來看,git有以下功能:
1、 從伺服器上轉殖完整的git倉庫(包括**和版本資訊)到單機上。
2、 在自己的機器上根據不同的開發目的,建立分支,修改**
3、 在單機上自己建立的分支上提交**
4、 在單機上合併分支
5、 把伺服器上最新版的**fetch下來,然後跟自己的主分支合併
6、 再把合併後的版本推到伺服器上,
原理:1)四種基本型別
blob: 每個blob代表乙個(版本的)檔案,blob只包含檔案的資料,而忽略檔案的其他元資料,如名字、路徑、格式等。
tree: 每個tree代表了乙個目錄的資訊,包含了此目錄下的blobs,子目錄(對應於子trees),檔名、路徑等元資料。因此,對於有子目錄的目錄,git相當於儲存了巢狀的trees。
commit:每個commit記錄了提交乙個更新的所有元資料,如指向的tree,父commit,作者、提交者、提交日期、提交日誌等。每次提交都指向乙個tree物件,記錄了當次提交時的目錄資訊。乙個commit可以有多個(至少乙個)父commits。
tag: ag用於給某個上述型別的物件指配乙個便於開發者記憶的名字, 通常用於某次commit。
git 的基本應用
1安裝git
# yum install git -y
git版本控制
1.git 是乙個開源的分布式版本控制系統,可以有效 高速的處理從很小到非常大的專案版本 管理。2.git配置管理 一般,有乙個 集中庫,包含4個分支 qa才能merge production 發布生產,出現生產問題,轉hotfix 研發經理 hotfix 解決緊急生產問題,測試後轉producti...
版本控制 Git
git 是目前世界上最先進的開源的分布式版本控制系統 沒有之一 用於敏捷高效地處理任何或小或大的專案。git 是 linus torvalds 為了幫助管理 linux核心開發而開發的乙個開放原始碼的版本控制軟體。git 與常用的版本控制工具 cvs,subversion 等不同,它採用了分布式版本...
GIT版本控制
不同情況下,實現版本回退 1.對於修改內容後,未add,未commit 可以利用git checkout 檔名 2.對於修改內容後,add,未commit get reset head 檔名 git checkout 檔名 3.對於修改內容後,add,commit 可以回到任何乙個版本 root g...