使用電腦處理資料時,一般會將資料以檔案型式進行儲存,以便於將來再次開啟並進行修改。但檔案或資料的修改,並不是單向式的處理方式。在許多情況下,檔案經過修改後,可能會發現原先的版本更符合實際需求,因此需要回復至原始版本。此時,如果原始檔案沒有事先保留,將面臨無法回復舊版本的窘況。使用一個好的版本控制系統,就可以避免以上情形的發生,而本文所介紹的Git就是這樣的工具。
保留檔案的方式有很多種,最簡單的方式自然是在編輯檔案之前,事先複製一份並且以不同的檔案名稱來加以儲存。如果要處理的檔案數量並不是很多,這樣的處理方式也算是相當的簡單。
如果要進行處理的是大型軟體的原始碼,或是網站系統的網頁檔案,使用以上的方式處理並不聰明。通常在有大量檔案需要同時進行管理的情況下,大多數人會採用版本控制系統,以進行檔案版本控管方面的工作。
各種作業系統平台中,都有相當知名的版本控制系統可以使用,通常也有為數不少的選擇。在UNIX/Linux系統之中,也有許多相當受到歡迎的版本控制系統,例如CVS、Subversion等等。而本文所要介紹的,則是相對而言發展較晚,但也已經有許多愛用者的Git。
2005年4月才推出第一個版本的Git,其發展歷史與Linux有著相當程度的淵源。Linux的創立者Linus Torvalds長久以來一直在進行Linux核心的更新工作,這意味者Linus Torvalds需要在許多原始碼檔案中不斷地進行比對、修改等工作。
|
▲Git操作主要以文字介面為主。 |
以Linux核心如此龐大的專案而言,不可能不採用版本管理系統加以控管。但Linus Torvalds在使用過許多版本控制系統後,認為大多數的版本控制系統都不符合自己的需求,於是便自行動手,打造了Git這一套全新的版本控制系統。
時至今日,雖然有許多人也加入了Git的開發工作,但Linus Torvalds並未退出Git的開發團隊,仍然親手進行相關的改版工作。目前,Git除了使用在Linux核心專案外,也被許多開放式原始碼專案加以採用,作為預設的版本控制系統。例如X.Org伺服器,也採用Git作為版本控制系統。
有別於大多數版本管理系統所使用的主從架構(Client-Server),Git採用分散式系統的設計方式,讓使用者不必架設伺服器,也能直接使用版本控制系統。
此外,Git本身也相當強調使用時的反應速度,可以避免使用者在進行版本管理等相關動作時,浪費許多無謂的時間在等待工作完成上。除此之外,Git本身的合併追蹤功能也相當強大,也因此吸引了不少使用者的注意。
Git本身是以文字命令的方式進行操作,對於已經熟悉UNIX/Linux文字操作介面的使用者而言,應該不至於造成問題。但對剛接觸UNIX/Linux系統的使用者來說,可能會覺得上手不易,甚至因而排斥使用Git。
如果有這樣的問題,或許可以先行參考Git的線上說明手冊,以便得到相當完整的指令操作說明。或者,考慮採用一些Git的圖形前端介面,也能讓Git的學習曲線變得更加和緩,更容易上手。
|
▲Git也有許多圖形前端介面可以使用。 |
分支與合併
在Git的眾多功能中,最值得一提的是Git的分支模式,這也是Git最令人讚賞、且與其他版本控制系統主要的不同之處。Git基本上相當鼓勵使用者建立多重的本地分支,且每個分支彼此獨立。而無論是進行分支的建立、合併,或是刪除等功能,都能在數秒之間完成動作。