在上一篇簡單講述了文件狀態與工作區域,在這里結合相關git命令詳細了解文件的狀態變更。
目錄
1. 介紹
2. 常用命令
3. 實際操作
1. 介紹
git的文件狀態是其git核心內容,了解后對后續的操作有莫大的幫助,不同的文件狀態又存儲在不同的工作區域中。
下面簡單的說明這兩者:
1.1 文件狀態
git中的文件有以下幾種狀態:
未跟蹤(untrack):表示文件為新增加的。
已修改(modified):表示修改了文件,但還沒保存到git倉庫中。
已暫存(staged):表示對一個已修改文件的當前版本做了標記,使之包含在下次提交的快照中。
已提交(committed):表示文件已保存在git倉庫中。
1.2 工作區域
知道了文件狀態,也需要知道不同的文件狀態存儲在不同的工作區域內。
按照本地計算機與遠程計算機划分,工作區域有以下幾種:
1)本地計算機
Working Directory(工作目錄):即正在編輯的文件狀態。文件狀態為未跟蹤(untrack)和已修改(modified)在此區域內。
Staging Area(暫存區):保存了下次將提交的文件列表信息。文件狀態為已暫存(staged)在此區域內。
Repository(本地倉庫):提交到本地倉庫的文件。
2)遠程計算機
Repository(遠程倉庫):已提交到遠程計算機內的文件。
1.3 示例圖
2. 常用命令
git clone :將遠程倉庫clone到本地計算機。
git pull :拉取遠程倉庫的數據。
git status :展示工作區及暫存區域中不同狀態的文件。
git add :將內容從工作目錄添加到暫存區。
git commit :所有通過 git add 暫存的文件提交到本地倉庫。
git push :將本地倉庫的記錄提交到遠程倉庫。
git reset HEAD <file> :從暫存區移除指定文件。
git checkout -- <file> :從本地倉庫恢復指定文件。
3.實際操作
看完文件狀態分類和相關命令后,來一次實際操作。
3.1 初始狀態
git clone 一個倉庫后,運行 git status:
3.2 添加一個文件
在此倉庫中添加一個文件a.txt,運行 git status:
提示:可以看到文件上方有個 "Untracked files",表示這個文件【未跟蹤】。
3.3 新創建的文件添加到【暫存區】
執行 git add a.txt ,將會把新創建的a.txt提交到【暫存區】,執行后運行 git status:
提示:文件上方有說明使用 git reset HEAD <file> 可從暫存區移除指定文件。
3.4 【暫存區】的內容提交到【本地倉庫】
執行 git commit ,將【暫存區】的內容提交到【本地操作】,執行后運行 git status:
3.5 【本地倉庫】的內容提交到【遠程倉庫】
執行 git push,將【本地倉庫】的內容提交到【遠程倉庫】,執行后運行 git status:
提示:可以看到提交后git狀態又回到初始化狀態。