使用git管理源碼之文件狀態和工做區理解

此次主要是介紹一下,在git管理中,不一樣文件在不一樣狀態所處於不一樣位置的原理。git

首先先盜圖一張(ps:圖片來源於http://git.oschina.net/progit/,本系列博客致力於讀者快速理解git中的部分知識,也同時鞏固自身知識,因此會適當的引用部分來源於progit這本書的相關資料,僅供學習交流,之後再做使用,不作相同申明)。
shell

從圖中咱們能夠清晰的看到,文件具備如下幾種狀態。工具

  1. untracked(未跟蹤狀態)學習

  2. unmodified(未修改狀態).net

  3. modified(已修改狀態)code

  4. staged(已暫存狀態)圖片

首先要理解一下工做區和本地倉庫的概念。工做區是你對文件進行操做的空間,該目錄也稱之爲工做目錄。本地倉庫爲你commit你本地代碼以後git工具保存你歷史版本代碼的倉庫。博客

那麼應該如何理解這幾種狀態在哪些場景中會出現呢?下面我使用相應的命令來具體的講解一下。it

1. 當你新增長了一個文件或者刪除了某個文件,這裏的新增長是指,在你以往的倉庫歷史中你歷來沒有存在過。這時候文件的狀態就是untracked狀態class

經過git add <file>命令將未跟蹤的進行跟蹤,經過該命令該文件的狀態會變成已暫存狀態(ps:上圖中顯示的是會變成未修改狀態,通過實際操做其實是直接變爲已暫存狀態,其實自身理解上來也是如此)。

2. 當你新建一個分支時而且切換到新分支時,以及commit你當前工做區中的代碼到本地倉庫時,如今的文件狀態稱之爲unmodified狀態

如如下命令會使文件出入unmodified狀態

git checkout -b test 該命令等於先執行 git branch test 再執行git checkout test

git commit

3. 當你對某個文件作出了修改,該文件就會處於modified狀態,該狀態比較好理解。

4. 如以前提到的,對未跟蹤文件進行跟蹤會使文件出入暫存狀態,一樣對已修改文件進行

git add <file>

命令一樣會使文件處於已暫存狀態。當你的工做區中出現了多個未跟蹤狀態的文件以及多個已修改狀態的文件時,假如你肯定全部文件是你正確狀態下作出的添加和修改。你能夠經過如下命令將全部文件一次性的修改成已暫存狀態

git add -A
相關文章
相關標籤/搜索