Git工作區和暫存區


Git和其他版本控制系統的一個不同之處就是有 暫存區 的概念。這也是Git高效率的原因。

 

1,工作區(Working Directory)

  工作區就是電腦中的任意目錄,比如"git命令快速入門章節"中的 /d/GitTestRepos/git003 目錄就是一個工作區:

  

  

2,版本庫(Repository

  工作區里面有一個隱藏目錄 .git ,這個目錄不算作工作區,而是Git的版本庫

  注意:千萬不要去亂動 .git 目錄的內容。

  Git的版本庫中存儲了很多東西,其中最重要的就是稱為 stage(或者叫idnex)的暫存區,還有Git默認創建的主分支 master,以及指向 master 的一個指針叫 HEAD(Git對象庫章節會詳細說明)。

  

  前面講解了往Git版本庫中提交文件的時候,是分為兩個步驟的:

  1:使用 git add 命令添加文件,實際上就是把文件變更添加到 暫存區;

  2:使用 git commit 命令提交,實際上就是把 暫存區 的所有內容都提交到 當前分支;

  因為創建Git版本庫時,系統默認創建了唯一一個master分支,所以,git commit 就是往 master 分支上提交。

  可以簡單理解為,將需要提交到版本庫的的所有文件變更通通放到 暫存區,然后,一次性提交 暫存區 中的所有修改

  

   暫存區 是Git中非常重要的概念,弄明白了暫存區,就弄明白了Git的很多操作到底干了些什么。

 

 

 git diff 命令

  故名思意,該命令會對選擇的兩個不同的根級樹對象進行比較。

  通常,git diff 命令進行樹的比較時可以通過 提交ID,分支名或者表簽名。git diff 命令使用這三種來源的組合進行如下4種基本比較:

  1,git diff

    會顯示 工作區暫存區 之間的差異。同時會顯示工作區里的變更文件,並把這個變更文件作為下一個提交暫存的候選。

  2,git diff [commit]

    顯示 工作區給定提交之間的差異。常見的一種用法是用 HEAD 或者一個特定的分支名。

  3,git diff --cached [commit]

    顯示 暫存區 和給定提交之間的差異。如果省略commit,則默認為 HEAD

    在 Git 1.6.1 及以后的版本可以使用同義詞 --staged,更容易理解。

  4,git diff [commit1] [commit2]

    顯示兩個給定提交之間的差異。

    


免責聲明!

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



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