本篇大綱:
- 何謂版本控制?
- 版本控制的類型和用途
- Git介紹和使用者
- Git vs Github vs Gitlab
何謂版本控制?
版本控制系統是一種軟件工程的開發技巧,可以通過這個系統讓每位成員的軟件版本可以方便同步和維護管理
(不然要用電子郵件或其他工具傳送和管理十分麻煩,尤其是程序又常常會有不同版本修改的問題!)
在沒有版本控制系統時,我們常會在編輯檔案前複製一個備份,或者在更新檔案後產生許多重複檔案,非常不便且難以維護。
因此,使用版本控制系統的需求就這樣產生啦!
版本系統類型和用途
舉例來說:A&B共同開發專案,有兩種版本控制方法:
1.中央式:
伺服器維護一個最新版本的專案,當要修改專案的時候,就從伺服器上下載專案,改完再上傳。
為了保證伺服器上永遠是最新的,就需要一直保持網路暢通;一旦中央伺服器壞了,一切都將結束。
CVS是最初的版本控制系統,SVN是當前最流行的集中式版本控制系統。上述兩個都是開源,免費的。
2.分散式:
一開始,A本地電腦有一個倉庫,用於存儲“ A對專案的修改”(B也一樣)。
需要更新整個專案的時候,A,B之間就互相點擊“修改”,然後本地倉庫就保存了“所有人該專案的修改”。
因此,每個人都有最新版的專案,斷網斷電也不用擔心。
目前使用人數最多的當然就是Git啦!
Git介紹和使用者
要把檔案恢復到編輯前的狀態,大家都是怎麼做的呢?
最簡單的方法就是先複製編輯前的檔案,使用這個方法時通常都會在檔案名稱或目錄名稱上添加編輯的日期。
但是,每次編輯檔案都要復制非常的麻煩,也很容易出錯。
像上面的例子那樣毫無規則的命名的話,就沒有辦法區別那一個檔案是最新的了。
如果是共享操作的檔案要加上編輯者的名字,具體進行了某種的更改也不容易知道了。
而且,共享的檔案,如果有兩個人同時進行編輯的話,先進行編輯的人的修改內容會被覆蓋,相信大家都有這樣的經歷。
Git的版本控制系統就是為了解決這種的問題而開發的。
Git為分散式版本控制系統,是為了更好管理Linux內核而開發的。
Git可以把檔案的狀態作為更新歷史記錄保存起來。因此可以把編輯過的檔案恢復到以前的狀態,也可以顯示編輯過內容的差異。
而且,有人想將編輯過的舊檔案上傳伺服器,覆蓋其他人的最新檔案時,系統會發出警告,因此可以避免在無意中覆蓋他人的編輯內容。
Git的使用者多個專案開發人員,連設計人員都可以使用!
基本上,Git只關心檔案的“內容”,所以只要是檔案,其實都可以使用Git來管理。
只是,設計師工作少量的檔案主要是PhotoShop的PSD或Illustrator的AI檔,雖然Git也可以管理這些檔案,
但因為這些檔案(二進位檔)不像一般文字檔可以一行一行的被查看,所以就沒辦法那麼精準的知道什麼人在什麼時候改了某種字。
但整體而言,使用Git還是可以幫得上設計師的忙,至少當檔案不小心被覆蓋或刪除的時候,還可以救回舊的版本的檔案。
Git vs Github vs Gitlab
Github和Git是兩回事。
Git是版本控制系統,Github是在線的基於Git的代碼託管服務。
GitHub是2008年由Ruby on Rails編寫而成的。GitHub同時提供了帳戶和免費帳戶。
這兩個帳戶都可以創建公開的代碼倉庫,但是某些帳戶也可以創建私有的代碼倉庫。
Gitlab
Github有個小缺陷,就是你的repo(repository的縮寫,表示“倉庫”)都需要public(公開)
如果你想要創造private(私人)的repo,那得付錢。
幸好,Gitlab解決了這個問題,可以在上面創建免費的私人repo。