一别渔、Git 工作流程圖
這張圖完全體現(xiàn)了Git 管理流程巍虫,先來看下Workspace(工作區(qū))、Index / Stage(暫存區(qū))吆豹、Repository:(本地倉庫)鱼的、Remote:遠(yuǎn)程倉庫理盆。
工作區(qū)
????程序員進(jìn)行開發(fā)改動的地方,是你當(dāng)前看到的凑阶,也是最新的猿规。平常我們開發(fā)就是拷貝遠(yuǎn)程倉庫中的一個分支,基于該分支進(jìn)行開發(fā)宙橱。在開發(fā)過程中就是對工作區(qū)的操作姨俩。
暫存區(qū)
????.git目錄下的index文件, 暫存區(qū)會記錄git add添加文件的相關(guān)信息(文件名、大小师郑、timestamp...)环葵,不保存文件實(shí)體, 通過id指向每個文件實(shí)體∨缓酰可以使用git status查看暫存區(qū)的狀態(tài)积担。暫存區(qū)標(biāo)記了你當(dāng)前工作區(qū)中,哪些內(nèi)容是被git管理的猬仁。
????當(dāng)你完成某個需求或功能后需要提交到遠(yuǎn)程倉庫帝璧,那么第一步就是通過git add先提交到暫存區(qū),被git管理湿刽。
本地倉庫
? ??保存了對象被提交 過的各個版本的烁,比起工作區(qū)和暫存區(qū)的內(nèi)容,它要更舊一些诈闺。
????git commit后同步index的目錄樹到本地倉庫渴庆,方便從下一步通過git push同步本地倉庫與遠(yuǎn)程倉庫的同步。
遠(yuǎn)程倉庫
????遠(yuǎn)程倉庫的內(nèi)容可能被分布在多個地點(diǎn)的處于協(xié)作關(guān)系的本地倉庫修改雅镊,因此它可能與本地倉庫同步襟雷,也可能不同步,但是它的內(nèi)容是最舊的仁烹。
根據(jù)官方給出的總結(jié):
????任何對象都是在工作區(qū)中誕生和被修改耸弄;
????任何修改都是從進(jìn)入index區(qū)才開始被版本控制;
????只有把修改提交到本地倉庫卓缰,該修改才能在倉庫中留下痕跡计呈;
????與協(xié)作者分享本地的修改,可以把它們push到遠(yuǎn)程倉庫來共享征唬。