Git的各種狀態


考:http://blog.csdn.net/wirelessqa/article/details/19548057

按照文件的存放位置分:

在你自建的Git本地倉庫中,有三個區域:本地目錄、暫存區、HEAD。

 

  • 工作目錄:也叫work tree, 就是受Git控制的文件夾,所有被跟蹤記錄的文件都包括在其中;

  • 暫存區(index或者stage):類似一個緩存區域,臨時保存你做的改動;

  • HEAD:指向最近一次提交后的結果。

按照文件的狀態分:

工作目錄下面的所有文件都不外乎這兩種狀態:已跟蹤或未跟蹤

  • 未跟蹤的文件的改動不受到Git的版本控制

  • 已跟蹤的文件,即被納入版本控制的文件,又分為未修改(unmodified)、已修改(modified)、已暫存(staged)三種狀態。

 

  • 當在工作目錄中新加入一個文件時,它處於未跟蹤狀態,這表示其沒有納入Git的版本控制。

  • 通過 git add 命令可以將其加入跟蹤,並同時放入暫存區。

  • 一個已經被跟蹤的文件,如果沒有做過新的修改,就是未修改狀態。

  • 一旦對其做了改動,就變成了已修改狀態。通過 git add 命令可以將已修改的文件放入暫存區。

  • 初次克隆某個倉庫時,工作目錄中所有文件都是已跟蹤且未修改的狀態。

  • git commit 命令會將暫存區中的文件提交至HEAD所指向的分支。當被commit之后,暫存區的文件將回到未修改狀態。

對於如下圖所示的git status

最上面的兩行綠色,表示已經通過git add 將new file和修改放入暫存區了.

下面的一行紅色,表示修改過了,但是沒有git add提交修改,也就不會放入暫存區

最下面兩行,untracked,沒有加入版本控制.

所以git add和git rm是打通工作目錄和暫存區的橋梁.

其實git add應該是將untracked和modified連接到staged,貌似上圖不對.

PS:對於暫存區,也叫stage或者index或者cached.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM