版本管理工具不但可以備份而且還能記錄版本,也就是同一個東西不同時期的狀態同時可以跟蹤追溯。
版本管理工具由CVS、SVN、Git、GitHub。
最早的版本管理工具CVS,因為多人開發專案導致工作很難協調所以就實現了CVS工具。
產品 | 特點 |
CVS | 最早的版本管理工具,集中式管理,中心伺服器,每個人都存放。 |
SVN | 一個更好的集中式版本管理工具 |
Git | 分散式的,由Linux開源社群誕生的。 |
Github | 託管網站,一個專案可以有一個網站,專案程式碼可以託管到這個網站 |
Github和Gitlab的區別:Gitlab擁有Github的一切功能而且還有更多特性。使用者介面豐富。Github可以理解為一個網站為使用者提供GIT倉儲,而Gitlab是基於GIT實現的專案管理軟體,我們自己可以在公司內部搭建Gitlab服務。
GIT和SVN的區別:SVN等其他傳統版本管理工具儲存的是每個版本的變化
Git儲存的是快照而不是結果
GIT中所有資料在儲存前都進行資料校驗然後以校驗和來引用。在GIT資料庫中儲存的資訊都是以這種SHA-1雜湊值來儲存的而不是檔名稱。
狀態 | |
Commited | 已提交表示資料已經按照儲存到本地資料庫中 |
Modified | 表示修改了檔案但是還沒有提交到資料庫中 |
Staged | 表示對一個已修改的檔案的當前版本做了標記。 |
由上面三個概念引入的三個區域
- GIT倉庫:是GIT用來儲存資料的地方
- 工作目錄:是對某個專案獨立拉取出來的內容,放在你的本地
- 暫存區:是一個檔案,儲存下次將要提交的列表資訊
流程如下:
- 從倉庫拉取到工作區
- 在工作區修改檔案
- 暫存檔案,也就是對應的git add操作
- 本地提交到本地倉庫
- PUSH到遠端倉庫