git stage 暫存 Git暫存區深入理解

2021-10-13 12:11:17 字數 1264 閱讀 9290

關於暫存區的基本概念可以參閱git工作區和暫存區一章節。

通過git add命令可以將工作區中指定內容加入暫存區,**例項如下:[shell] 純文字檢視 複製**$ git add readme.txt

上述**將工作區中的readme.txt檔案加入到暫存區。

從「暫存區」名字來理解,此區域好像是乙個倉庫,把將要提交的內容暫時存放於此。

上述理解從感性上來說沒什麼問題,並且有助於接受此概念。

然而暫存區的實質是什麼呢,僅僅是乙個檔案罷了,截圖如下:

所謂的暫存區僅僅是.git目錄下的乙個index檔案罷了,這也是為了什麼被稱為index(索引)。

下面先看一下當前專案的狀態,**如下:[shell] 純文字檢視 複製**$ git status

**執行效果截圖如下:

可以看到readme.txt檔案被修改,位於暫存區待commit提交狀態。

現在看一下暫存區內容,**如下:[shell] 純文字檢視 複製**$ git ls-files --stage

**執行效果截圖如下:

下面我們新增乙個檔案並將其新增至暫存區,**如下:[shell] 純文字檢視 複製**$ echo '螞蟻部落' > antzone.txt

新建乙個antzone.txt檔案,並寫入字串"螞蟻部落"。[shell] 純文字檢視 複製**$ git add antzone.txt

將新增的antzone.txt檔案新增至暫存區;再來看.git/index檔案中的內容:[shell] 純文字檢視 複製**$ git ls-files --stage

**執行截圖如下:

由此可見,暫存區叫做index(索引)才是實至名歸,的確是指向檔案的索引。

真正的檔案儲存在.git/objects目錄中,具體參閱git儲存內容的位置與方式一章節。

下面將暫存區內容提交,並檢視提交後的狀態,**如下:[shell] 純文字檢視 複製**$ git commit -m "c5"

**執行效果截圖如下:

由此可見,工作區沒有新增或者修改的檔案,暫存區也沒有待提交檔案。

再來看index檔案中的內容,**如下:[shell] 純文字檢視 複製**$ git ls-files --stage

**執行截圖如下:

暫存區依然如故,並不像是我們感性上認為被清空。

當刪除暫存區內容的時候,其實就是刪除index檔案中的內容,.git/objects目錄中的內容不會被刪除。

刪除命令如下:[shell] 純文字檢視 複製**$ git rm --cached readme.txt

git暫存本地修改

在使用git pull 時,經常會碰到有衝突的情況,提示如下資訊 your branch is behind origin master by 123 commits,and can be fast forwarded.use git pull to update your local branch...

git 暫存 弄懂Git的工作區和暫存區

git和其他版本控制系統如svn的乙個不同之處就是有暫存區的概念。工作區和暫存區 工作區就是你在電腦裡能看到的目錄。工作區有乙個隱藏目錄,這個不算工作區,而是git的版本庫。git的版本庫里存了很多東西,其中最重要的就是稱為stage 或者叫index 的暫存區,還有git為我們自動建立的第乙個分支...

git 暫存 5 Git 工作區和暫存區

點讚,收藏 關注,理財 技術不迷路 工作區和暫存區 git和其他版本控制系統如svn的乙個不同之處就是有暫存區的概念。工作區 working directory 就是你在電腦裡能看到的目錄,比如我的learngit資料夾就是乙個工作區 版本庫 repository 工作區有乙個隱藏目錄.git,這個...