首頁(yè)技術(shù)文章正文

Git是什么?Git是怎樣工作的?

更新時(shí)間:2022-03-17 來(lái)源:黑馬程序員 瀏覽量:

什么是 Git?

Git 是一個(gè)開(kāi)源的分布式版本控制系統(tǒng),是目前世界上最先進(jìn)、最流行的版本控制系統(tǒng)??梢钥焖俑咝У靥幚韽暮苄〉椒浅4蟮捻?xiàng)目版本管理。特點(diǎn):項(xiàng)目越大越復(fù)雜,協(xié)同開(kāi)發(fā)者越多,越能體現(xiàn)出 Git 的高性能和高可用性。

Git 的特性

Git 之所以快速和高效,主要依賴于它的兩個(gè)特性:直接記錄快照,而非差異比較;近乎所有操作都是本地執(zhí)行。

1.SVN 的差異比較

傳統(tǒng)的版本控制系統(tǒng)(例如 SVN)是基于差異的版本控制,它們存儲(chǔ)的是一組基本文件和每個(gè)文件隨時(shí)間逐步累積的差異。

SVN 的差異比較

好處:節(jié)省磁盤(pán)空間,缺點(diǎn):耗時(shí)、效率低。在每次切換版本的時(shí)候,都需要在基本文件的基礎(chǔ)上,應(yīng)用每個(gè)差異,從而生成目標(biāo)版本對(duì)應(yīng)的文件。

2.Git 的記錄快照

Git 快照是在原有文件版本的基礎(chǔ)上重新生成一份新的文件,類似于備份。為了效率,如果文件沒(méi)有修改,Git不再重新存儲(chǔ)該文件,而是只保留一個(gè)鏈接指向之前存儲(chǔ)的文件。

Git 的記錄快照

缺點(diǎn):占用磁盤(pán)空間較大

優(yōu)點(diǎn):版本切換時(shí)非??欤?yàn)槊總€(gè)版本都是完整的文件快照,切換版本時(shí)直接恢復(fù)目標(biāo)版本的快照即可。

特點(diǎn):空間換時(shí)間

3.近乎所有操作都是本地執(zhí)行

在Git 中的絕大多數(shù)操作都只需要訪問(wèn)本地文件和資源,一般不需要來(lái)自網(wǎng)絡(luò)上其它計(jì)算機(jī)的信息?;谶@一特點(diǎn),Git在斷網(wǎng)后依舊可以在本地對(duì)項(xiàng)目進(jìn)行版本管理,只需聯(lián)網(wǎng)后,把本地修改的記錄同步到云端服務(wù)器即可。

4.Git 中的三個(gè)區(qū)域

使用Git 管理的項(xiàng)目,擁有三個(gè)區(qū)域,分別是工作區(qū)、暫存區(qū)、Git 倉(cāng)庫(kù)。如果把這些區(qū)域比作現(xiàn)實(shí)中紙質(zhì)文件的人工處理和收納管理,三個(gè)區(qū)域分別負(fù)責(zé)的任務(wù)是:

工作區(qū):負(fù)責(zé)處理工作的區(qū)域。

暫存區(qū):已完成的工作的臨時(shí)存放區(qū)域,等待被提交。

Git 倉(cāng)庫(kù):最終的存放區(qū)域。

5.Git 中的三種狀態(tài)

已修改:表示修改了文件,但還沒(méi)將修改的結(jié)果放到暫存區(qū)

已暫存:表示對(duì)已修改文件的當(dāng)前版本做了標(biāo)記,使之包含 在下次提交的列表中;

已提交:表示文件已經(jīng)安全地保存 在本地的Git 倉(cāng)庫(kù)中。

注意:工作區(qū)的文件被修改了,但還沒(méi)有放到暫存區(qū),就是已修改狀態(tài)。 如果文件已修改并放入暫存區(qū),就屬于已暫存狀態(tài)。 如果Git 倉(cāng)庫(kù)中保存著特定版本的文件,就屬于已提交狀態(tài)。

6.基本的Git 工作流程

基本的Git 工作流程

基本的Git 工作流程如下:

①在工作區(qū)中修改文件

②將你想要下次提交的更改進(jìn)行暫存

③提交更新,找到暫存區(qū)的文件,將快照永久性存儲(chǔ)到Git 倉(cāng)庫(kù).





猜你喜歡:

Git下載安裝和配置基礎(chǔ)信息

什么是模塊化?為什么要進(jìn)行模塊化開(kāi)發(fā)?

如何查看git用戶名和密碼?

web.js為什么改名叫做Node.js?

黑馬程序員web前端開(kāi)發(fā)培訓(xùn)

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!