在git中,staged用于表示文件的狀態(tài),是暫存狀態(tài)的意思,在此狀態(tài)中的文件或目錄的變化不會影響倉庫的狀態(tài),同樣在commit的時候也是看不到的, 執(zhí)行“git commit”則將修改同步到庫中, 這時庫中的文件和本地文件又變?yōu)橐恢隆?/p>
本文操作環(huán)境:Windows10系統(tǒng)、Git2.30.0版、Dell G3電腦。
git中staged的意思是什么
git庫所在的文件夾中的文件大致有4種狀態(tài)
-
Untracked: 未跟蹤, 此文件在文件夾中, 但并沒有加入到git庫, 不參與版本控制. 通過git add 狀態(tài)變?yōu)镾taged.
-
Unmodify: 文件已經(jīng)入庫, 未修改, 即版本庫中的文件快照內(nèi)容與文件夾中完全一致. 這種類型的文件有兩種去處, 如果它被修改, 而變?yōu)镸odified. 如果使用git rm移出版本庫, 則成為Untracked文件
-
Modified: 文件已修改, 僅僅是修改, 并沒有進行其他的操作. 這個文件也有兩個去處, 通過git add可進入暫存staged狀態(tài), 使用git checkout 則丟棄修改過, 返回到unmodify狀態(tài), 這個git checkout即從庫中取出文件, 覆蓋當(dāng)前修改
-
Staged: 暫存狀態(tài). 執(zhí)行g(shù)it commit則將修改同步到庫中, 這時庫中的文件和本地文件又變?yōu)橐恢? 文件為Unmodify狀態(tài). 執(zhí)行g(shù)it reset HEAD filename取消暫存, 文件狀態(tài)為Modified
從untracked狀態(tài)變更到staged狀態(tài)
我們通過git add可以直接將一個未納入版本管理的文件變更到staged狀態(tài)
從modified狀態(tài)變更到staged狀態(tài)
當(dāng)你的文件有改動時,依舊可以通過git add將這個改動文件變更到staged狀態(tài)
將當(dāng)前目錄下所有文件都納入到staged狀態(tài)
如果當(dāng)前工作樹下有新創(chuàng)建的文件(處于untracked狀態(tài)),又有已經(jīng)改動的文件(處于modified狀態(tài)),此時我們可以通過git add -A將所有文件均變?yōu)閟taged狀態(tài)
推薦學(xué)習(xí):《Git教程》