Git 是一個開源的分布式版本控制系統(tǒng),是目前世界上最先進、最流行的版本控制系統(tǒng)??梢钥焖俑咝У靥幚韽暮苄〉椒浅4蟮捻椖堪姹竟芾怼L攸c:項目越大越復雜,協(xié)同開發(fā)者越多,越能體現(xiàn)出 Git 的高性能和高可用性。
Git 之所以快速和高效,主要依賴于它的兩個特性:直接記錄快照,而非差異比較;近乎所有操作都是本地執(zhí)行。
傳統(tǒng)的版本控制系統(tǒng)(例如 SVN)是基于差異的版本控制,它們存儲的是一組基本文件和每個文件隨時間逐步累積的差異。
好處:節(jié)省磁盤空間,缺點:耗時、效率低。在每次切換版本的時候,都需要在基本文件的基礎上,應用每個差異,從而生成目標版本對應的文件。
Git 快照是在原有文件版本的基礎上重新生成一份新的文件,類似于備份。為了效率,如果文件沒有修改,Git不再重新存儲該文件,而是只保留一個鏈接指向之前存儲的文件。
缺點:占用磁盤空間較大
優(yōu)點:版本切換時非??欤驗槊總€版本都是完整的文件快照,切換版本時直接恢復目標版本的快照即可。
特點:空間換時間
在Git 中的絕大多數操作都只需要訪問本地文件和資源,一般不需要來自網絡上其它計算機的信息?;谶@一特點,Git在斷網后依舊可以在本地對項目進行版本管理,只需聯(lián)網后,把本地修改的記錄同步到云端服務器即可。
使用Git 管理的項目,擁有三個區(qū)域,分別是工作區(qū)、暫存區(qū)、Git 倉庫。如果把這些區(qū)域比作現(xiàn)實中紙質文件的人工處理和收納管理,三個區(qū)域分別負責的任務是:
工作區(qū):負責處理工作的區(qū)域。
暫存區(qū):已完成的工作的臨時存放區(qū)域,等待被提交。
Git 倉庫:最終的存放區(qū)域。
已修改:表示修改了文件,但還沒將修改的結果放到暫存區(qū)
已暫存:表示對已修改文件的當前版本做了標記,使之包含 在下次提交的列表中;
已提交:表示文件已經安全地保存 在本地的Git 倉庫中。
注意:工作區(qū)的文件被修改了,但還沒有放到暫存區(qū),就是已修改狀態(tài)。 如果文件已修改并放入暫存區(qū),就屬于已暫存狀態(tài)。 如果Git 倉庫中保存著特定版本的文件,就屬于已提交狀態(tài)。
基本的Git 工作流程如下:
①在工作區(qū)中修改文件
②將你想要下次提交的更改進行暫存
③提交更新,找到暫存區(qū)的文件,將快照永久性存儲到Git 倉庫.