git屬於分佈式版本控制系統:
客戶端並不僅提取最新版本的文件快照,而是把原始的代碼倉庫完整的鏡像下來。git
優勢: 1.因爲任何人每次提取操做,實際上都是一次對代碼倉庫的完整備份,所以近乎全部的操做均可以在本地執行,速度就是至關的快,而且能夠在網絡斷開的時候操做仍然不受影響,能夠頻繁的進行提交更新,等到有網絡的時候再上傳到遠程的鏡像倉庫就能夠了。 2.git的分支模型,至關的輕量級,被稱爲「必殺技」。 缺點: 1.每一個開發人員都擁有全部的代碼,不利於核心代碼的保密(若是有重要代碼須要保密,則不建議使用git)
遠程倉庫(remote)緩存
工做區(workspace)
存放git版本倉庫的目錄就是工做區
主要存放代碼文件和代碼庫網絡
歷史區(repository)
工做區有一個隱藏目錄.git,這個不算工做區,而是Git的版本庫。分佈式
暫存區(index)
Git的版本庫裏存了不少東西,其中最重要的就是稱爲stage(或者叫index)的暫存區,還有Git爲咱們自動建立的第一個分支master,以及指向master的一個指針叫HEAD。ide
指針--- HEAD:
你的本地倉庫由 git 維護的三部分組成。
第一個是你的 工做目錄,它持有實際文件;
第二個是 緩存區(Index),它像個緩存區域,臨時保存你的改動;
第三個HEAD,指向你最近一次提交後的結果。
spa
建立兩個文件add到stage:
git add 文件名
或者
git add * 3d
Git跟蹤並管理的是修改,而非文件:
第一次修改 -> git add -> 第二次修改 -> git add -> git commit
每次修改,若是不add到暫存區,那就不會加入到commit中。版本控制