原理結構圖
git結構圖
描述
- Workspace:工作區
- Index / Stage:暫存區
- Repository:倉庫區(或本地倉庫)
- Remote:遠程倉庫
解釋
使用git應該明白一點,什么是本地倉庫以及為什么有一個本地倉庫,git和svn的區別就在這。
git會把服務端上的倉庫完整的
復制到你本地,看清楚是完整的,也就是說:不僅僅是你所在的分支,別人建的分支也會被復制下來
因此通常所做的操作,比如diff,revert,commit等,都是對你本地的倉庫進行的,如果要和服務器(遠程倉庫)同步,就是的pull和push操作
相信很多人看了這張圖就明白各個區的含義,不過下面還是按照我的理解做下簡單的解釋。
1.Workspace 工作區
即正在編輯的文件狀態。文件狀態為未跟蹤(untrack)和已修改(modified)在此區域內。
通過git pull
把遠程倉庫中
的文件同步到工作區
。
通過git add
把該區域中的文件提交到暫存區
中。
2.Index/Stage 暫存區
保存了下次將提交的文件列表信息。文件狀態為已暫存(staged)在此區域內。
通過git commit
把文件提交到本地倉庫
中。
3.Repository 本地倉庫
本地倉庫就是從服務器上復制到本地的一份代碼,所做的操作都是對這個倉庫發生的。
通過git push
把本地倉庫中
的文件推送到遠程倉庫
中。
4.遠程倉庫
遠程倉庫也就是我們所說的服務器端,大家都從這來clone代碼,最后大家都需要把本地倉庫的變更和這個同步。