![Life Cycle](https://git-scm.com/book/en/v2/book/02-git-basics/images/lifecycle.png)
Life Cycle
git庫所在的文件夾中的文件大致有4種狀態(tài)
Untracked: 未跟蹤, 此文件在文件夾中, 但并沒有加入到git庫, 不參與版本控制. 通過
git add
狀態(tài)變?yōu)?code>Staged.Unmodify: 文件已經(jīng)入庫, 未修改, 即版本庫中的文件快照內(nèi)容與文件夾中完全一致. 這種類型的文件有兩種去處, 如果它被修改, 而變?yōu)?code>Modified. 如果使用
git rm
移出版本庫, 則成為Untracked
文件Modified: 文件已修改, 僅僅是修改, 并沒有進行其他的操作. 這個文件也有兩個去處, 通過
git add
可進入暫存staged
狀態(tài), 使用git checkout
則丟棄修改過, 返回到unmodify
狀態(tài), 這個git checkout
即從庫中取出文件, 覆蓋當前修改Staged: 暫存狀態(tài). 執(zhí)行
git commit
則將修改同步到庫中, 這時庫中的文件和本地文件又變?yōu)橐恢? 文件為Unmodify
狀態(tài). 執(zhí)行git reset HEAD filename
取消暫存, 文件狀態(tài)為Modified