
前言
沒有要排除任何工具的意思,只是眼下最流行的“版本管理系統(tǒng)”非GIT莫屬。
寫給新手
有些朋友可能會說我還沒有使用過GIT,好吧,我不說你OUT了,只是在開始之前你應該簡單了解下GIT。這里有個圖文生動的好地方,有興趣不妨來看一看----git - 簡易指南
Git有什么不一樣
如果你是一個具有使用SVN背景的人,你需要做一定的思想轉(zhuǎn)換,來適應GIT提供的一些概念和特征。
- SVN屬于中心式的倉庫管理,統(tǒng)一維護在Server端,而Git屬于分布式的倉庫管理,每個開發(fā)者都擁有自己的本地倉庫,并且每個倉庫都是平等的。
- 由于你自己本身就擁有倉庫,那么Git在本地磁盤上就保存著所有有關當前項目的歷史更新,并且Git中的絕大多數(shù)操作都只需要訪問本地文件和資源,不用連網(wǎng),所以處理起來速度飛快。用SVN的話,沒有網(wǎng)絡或者斷開VPN你就無法做任何事情。但用Git的話,就算你在飛機或者火車上,都可以非常愉快地頻繁提交更新,等到了有網(wǎng)絡的時候再上傳到遠程的鏡像倉庫。換作其他版本控制系統(tǒng),這么做幾乎不可能,抑或是非常麻煩。
- 并且Git中每個克隆(clone)的版本庫都是平等的。你可以從任何一個版本庫的克隆來創(chuàng)建屬于你自己的版本庫,同時你的版本庫也可以作為源提供給他人,只要你愿意。
- Svn?Svn是統(tǒng)一管理的好吧。開發(fā)時你的Boss說了算,說什么時候提交代碼就什么時候提交代碼,說什么時候更新就統(tǒng)一更新,你覺得很爽?
- Git?Git的提交不會被打斷,直到你的工作完全滿意了,PUSH給他人或者他人PULL你的版本庫,合并會發(fā)生在PULL和PUSH過程中,不能自動解決的沖突會提示您手工完成。
現(xiàn)在你知道有什么樣的區(qū)別了把,奧斯托洛夫斯基曾經(jīng)說過:“統(tǒng)一是扼殺創(chuàng)造力的根源”?。ê冒桑叶抛?..)難怪這么多開源社區(qū)(比如OSC@China)都采用了Git,而不是... ...
我最討厭SVN的兩個地方
如果在公司規(guī)定就使用SVN(多數(shù)不是規(guī)定,而是確實不了解Git)那么我就很反感一下兩點:
- SVN有點考驗手速,誰提交的快就不需要解決沖突。這個有點煩人,大家明明在同一個Team中,有了沖突應該協(xié)調(diào)去解決,而不是最后那個“手速”慢的同學去獨自跟沖突干上一仗。
- SVN對于文件更改記錄的管理。每個文件夾下都有那么一個.svn的文件夾確實很不爽,你去管理你的東西,干嘛在我的開發(fā)環(huán)境下放上你的東西,不爽!
Git的GUI工具
不得不說的是很多朋友都有GUI偏好,或者說一個好的工具怎能沒有一個好的“臉”呢?!好吧,這是Windows習慣的驅(qū)使,我只能說非所有程序猿都愿意使用命令行工具,尤其是被Windows慣壞了的那批。不得不說的是Git有自己的GUI界面,因此完全不需要其他的GUI工具。不過話又說回來,工具都有個習慣問題?;旧蠌腟VN轉(zhuǎn)換過來的程序猿,絕大多數(shù)都只用過TortoisSVN,好吧那你還用TortoisGit吧。
不過你可能不明白的是TortoiseGit沒有集成Git,那么還需要去下載msysGit(或者Git for windows)來安裝。因為TortoiseGit其實只是一個殼(其實和Svn一樣),它需要調(diào)用Git命令行才能發(fā)揮作用。(現(xiàn)在你知道我為什么推薦你用命令行了么?)
TortoiseGit安裝好是這個樣子的:

還有就是另外一個GUI工具叫做SourceTree,個人感覺還是非常不錯的,界面如下:

Git for windows 和 msysGit
這個你大致了解下就行,只是多一種選擇,多一條路。msysGit的主頁提供了兩個項目:Git for Windows和msysGit,并寫明了它們的詳細區(qū)別。
個人認為,Git for Windows適合絕大多數(shù)程序猿(又見絕大多數(shù)),所以,強烈建議安裝Git for Window。
msysGit使用一種很BT也很NB的方式來安裝。先安裝一個最小的MinGW/MSYS系統(tǒng),然后使用git pull 所有的源碼,調(diào)用gcc在本地編譯成可執(zhí)行文件。
啰啰嗦嗦說了這么多,可能沒有給大家在實際開發(fā)中幫上什么忙,Git的使用過程還需要大家自己去摸索。