Git工作區,暫存區和版本區

2021-07-22 04:46:42 字數 1969 閱讀 5162

基本概念

這裡出現了三個名詞:

工作區,

暫存區,

版本庫.

工作區:

你工作的地方

,你在**工作呢

?肯定是你的電腦上

,那麼工作區就是你在電腦裡能看到的目錄

.暫存區:

英文名叫

stage

或者index.

聽名字就知道是暫時的

,不是永久的

,資料會經常的發生變化

,這個區域一般存放在』git目錄』下的index

檔案(.git/index)中,

我們把暫存區有時候也叫做索引

(index).

版本庫:

工作區中有乙個隱藏目錄

.git,

這個不算工作區,而是

git的版本庫

簡單說一下這個圖,圖中的左側為工作區

,右側為版本庫

.在版本庫中標記為』index』的區域就是暫存區(stage

或者index),

標記為』master』的是master

分支所代表的目錄樹

.圖中我們可以看出此時」head」實際是指向master

分支的乙個』游標』.所以圖示的命令中出現

head

的地方可以用

master

來替換.

圖中objects

標識的區域為

git的物件庫

,實際位於』.git/object』目錄下,

裡面包含了建立的各種物件以及內容

.當對工作區修改(

或新增)

的檔案執行」git add」命令時,

暫存區的目錄樹被更新

,同時工作區修改

(或新增

)的檔案內容被寫入到物件庫中的乙個新的物件中

,而該物件的

id被記錄在暫存區的檔案索引中

.

當執行提交操作(git commit)時,

暫存區的目錄樹寫到版本庫

(物件庫)中

,master

分支會做相應的更新.即

master

指向的目錄樹就是提交暫存區的目錄樹

.

當執行』git reset head』命令時,

暫存區的目錄樹會被重寫,被

master

分支指向的目錄樹所替換

,但是工作區不受影響

.

當執行』git rm --cached 』命令時,

會直接從暫存區刪除檔案

,工作區則不會做出改變

.

當執行』git checkout head』或者』git checkout head 』命令時,

會用head

指向的master

分支中的全部或者部分檔案替換快取區以及工作區中的檔案

.這個命令也是極具危險性的

,因為不但會清楚工作中未提交的改動

,也會清楚暫存區中未提交的改動

.這裡主要的是說一些git

在執行命令的時候

,各個檔案的情況和變動情況

.

Git 工作區 暫存區和版本庫

暫存區 stage,index 是 git 最重要的概念之一,理解了這個概念很多 git 命令就不再那麼神秘了。今天在寫這部分的內容,畫了乙個圖,看看有沒有什麼問題。理解 git 暫存區 stage 把上面的 實踐二 從頭至尾走一遍,不知道您的感想如何?在 實踐二 的過程中,我有意無意的透漏了 暫存...

Git 工作區 暫存區和版本庫

暫存區 stage,index 是 git 最重要的概念之一,理解了這個概念很多 git 命令就不再那麼神秘了。今天在寫這部分的內容,畫了乙個圖,看看有沒有什麼問題。理解 git 暫存區 stage 把上面的 實踐二 從頭至尾走一遍,不知道您的感想如何?在 實踐二 的過程中,我有意無意的透漏了 暫存...

Git 工作區 暫存區和版本庫

暫存區 stage,index 是 git 最重要的概念之一,理解了這個概念很多 git 命令就不再那麼神秘了。我認為 git 暫存區 stage,或稱為 index 的設計是 git 最成功的設計之一,也是最難理解的乙個設計。當執行 git status 命令掃瞄工作區改動的時候,先依據 git ...