Git(5) —— Git的工作原理
阿新 • • 發佈:2020-10-22
目錄
1.三個區域
- Git本地有三個工作區域:工作目錄(Working Directory,平時我們存放檔案的資料夾)、暫存區(Stage/Index,一個檔案)、本地倉庫/資源庫(Repository/Git Directory/History)。如果在加上遠端的git倉庫(Remote Directory)就可以分為四個工作區域,檔案在這四個區域之間的轉換關係如下:
-
下圖顯示的提交實現流程:工作區–(git add file,提交)–>暫存區–(git commit,提交)–>本地倉庫–(git push,提交)–>遠端倉庫;
-
相反就是獲取實現流程:遠端倉庫–(git pull,拉取)–>本地倉庫
-
Workspace:工作區,就是你平時存放專案程式碼的地方
-
Index / Stage:暫存區,用於臨時存放你的改動,事實上它只是一個檔案,儲存即將提交到檔案列表資訊
-
Repository:倉庫區(或本地倉庫),就是安全存放資料的位置,這裡面有你提交到所有版本的資料。其中HEAD指向最新放入倉庫的版本
-
Remote:遠端倉庫,託管程式碼的伺服器,可以簡單的認為是你專案組中的一臺電腦用於遠端資料交換
-
上面的4個工作區域,一般我們直接使用的只有工作區和遠端倉庫,中間的兩個都是使用git命令提交的時候git自己會去操作它們,我們一般不會直接操作
-
-
本地的三個區域確切的說應該是git倉庫中HEAD指向的版本:
- Directory:使用Git管理的一個目錄,也就是一個倉庫,包含我們的工作空間和Git的管理空間
- WorkSpace:需要通過Git進行版本控制的目錄和檔案,這些目錄和檔案組成了工作空間
- .git:存放Git管理資訊的目錄,初始化倉庫的時候自動建立
- Index/Stage:暫存區,或者叫待提交更新區,在提交進入repo之前,我們可以把所有的更新放在暫存區
- Local Repo:本地倉庫,一個存放在本地的版本庫;HEAD會只是當前的開發分支(branch)
- Stash:隱藏,是一個工作狀態儲存棧,用於儲存/恢復WorkSpace中的臨時狀態
2.工作流程
git的工作流程一般是這樣的:
- 在工作目錄中新增、修改檔案;【對檔案進行修改】
- 將需要進行版本管理的檔案放入暫存區域;【git add,將檔案放入暫存區,就是一個本地的檔案】
- 將暫存區域的檔案提交到git倉庫【git commit,暫存區–>本地倉庫–>遠端倉庫】
因此,git管理的檔案有三種狀態:已修改(modified),已暫存(staged),已提交(committed)