1. 程式人生 > >[軟體]如何使用分散式版本控制工具Git?

[軟體]如何使用分散式版本控制工具Git?

Git是一個由林納斯·託瓦茲為了更好地管理linux核心開發而創立的分散式版本控制/軟體配置管理軟體。需要注意的是和GNU Interactive Tools,一個類似Norton Commander介面的檔案管理器相區分。

Git最初的開發動力來自於BitKeeper和Monotone[2][3]。Git最初只是作為一個可以被其他前端比如Cogito或StGIT[4]包裝的後端而開發的。不過,後來Git核心已經成熟到可以獨立地用作版本控制[5]。很多有名的軟體都使用Git來進行版本控制[6],其中有Linux核心、X.Org伺服器和OLPC核心開發。

Git — The stupid content tracker,傻瓜內容跟蹤器。Linux是這樣給我們介紹Git的。

Git是用於Linux核心開發的版本控制工具。與常用的版本控制工具CVS、Subversion等不同,它採用了分散式版本庫的方式,不必伺服器端軟體支援,使原始碼的釋出和交流極其方便。Git的速度很快,這對於諸如Linux kernel這樣的大專案來說自然很重要。Git最為出色的是它的合併跟蹤(merge tracing)能力。

實際上核心開發團隊決定開始開發和使用Git來作為核心開發的版本控制系統的時候,世界開源社群的反對聲音不少,最大的理由是Git太艱澀難懂,從Git的內部工作機制來說,的確是這樣。但是隨著開發的深入,Git的正常使用都由一些友好的指令碼命令來執行,使Git變得非常好用,即使是用來管理我們自己的開發專案,Git都是一個友好,有力的工具。現在,越來越多的著名專案採用Git來管理專案開發,例如:wine、U-boot等。

作為開源自由原教旨主義專案,Git沒有對版本庫的瀏覽和修改做任何的許可權限制,通過其他工具也可以達到有限的許可權控制,比如:gitosis, CodeBeamer MR。原本Git的使用範圍只適用於Linux / Unix平臺,但逐步併成熟了在Windows平臺下的使用,主要歸功於Cygwin與msysgit環境與TortoiseGit這樣易用的GUI工具。其實Git的原始碼中已經加入了對Cygwin與MinGW編譯環境的支援並被逐步完善,對於Windows使用者是個福音。

現在sf上的程式碼用git的越來越多了,以前安裝的TortoiseSVN就歇菜了,所以安裝了git,我的電腦用的是win7,自然第一步是要找到git for windows,好在兩款git軟體適合在windows下使用。

1.TortoiseGit

TortoiseGit和TortoiseSVN類似,是一款有GUI的軟體,操作方法和TortoiseSVN類似,只不過將SVN改成了Git,就不多介紹了,它的專案主頁介紹的很清楚,有很多截圖,相信你看了一定會明白的。

2.msysgit

msysgit這個工具是一款類似於控制檯的應用程式,它是與MinGW並存的,你要使用它,必須先安裝Cygwin,由於我之前編譯程式碼,已經安裝過了,所以就不再安裝了。msysgit安裝後,會生成一個快捷方式在桌面,開啟之後是一個shell程式,裡面可以輸入需要的命令。

如果你不清楚命令,可以去專案主頁檢視命令,也可以在shell介面上輸入git help git,會帶你到msysgit的幫助頁面(需要聯網)。

不過我們一般最常用到的命令就是clone了,因為要獲取程式碼。

比如說獲取OpenVPN的程式碼,OpenVPN的地址是 git://openvpn.git.sourceforge.net/gitroot/openvpn/openvpn,我們可以輸入如下命令獲取程式碼。

<1>.建立一個資料夾:mkdir /d/Project/openvpn

<2>.進入該路徑 cd /d/Project/openvpn

<3>.獲取程式碼 git clone git://openvpn.git.sourceforge.net/gitroot/openvpn/openvpn

這樣就可以獲取到openvpn的程式碼到d:/Project/openvpn路徑下了

小結:TortoiseGit使用比較方便,而且不用安裝別的環境,建議用慣了TortoiseSVN的朋友使用;msysgit比較接近linux的使用,建議經常用linux或者window上有cygwin環境的朋友使用。不過msysgit是shell介面,在console上打命令不是顯得更酷嗎?