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