Githug攻略本(一):學習Git的金山打字通
原創【51CTO專稿】編者按:從今天開始,51CTO將連續刊登《Githug攻略本》系列。本系列作者名叫劉輝,長沙小伙兒,熱衷RoR與Git,也做一些iOS開發,《Git Community Book中文版》的譯者,在去年年初寫過《Git歷險記》系列。這次的系列顧名思義,還是跟Git有關,但卻和一般的教程不太一樣——這是一個游戲的攻略本。俗話說在游戲中學習,Githug就是這樣的一個項目。
本篇是系列***篇,讓不了解Git的各位對Git和Githug這個項目有一個了解,讓了解Git的各位對Githug這個項目有一個了解。這年頭,不用Git的程序員真的已經Out了。如果你還沒有下定決心學習Git,不妨試試看以Githug做一個起點。
以下為正文。
為什么要用 Git ?
Git 是 Linus 為了更好的管理 Linux 內核而開發的一個分布系版本控制軟件,最初的開發目的為了取代 BitKeeper。現在,Git 已經發展成目前世界上***的版本控制軟件。
無數的軟件系統現在正在使用Git : “Linux”、”Android”、”Ruby on Rails”、”Qt” …… 而且現在很多其它以前沒有使用 Git 的開源軟件系統也正在計劃轉向 Git。
程序員的 Facebook
目前對程序員交流方式影響***的當屬 Github,他幾乎改變了開源軟件的協作方式。
在若干年前,我看開源代碼時,一般是跑到 SourceForge 去搜索,然后下載源代碼。我記得當時 SourceForge 用的是 CVS,一般人想在上面申請一帳號建立倉庫是很難的事情;而且一般的開發者和項目的 owner 之間互動很少。
再后來開始使用 code.google.com,當時使用的是 SVN, 雖然可以自由的申請帳號創建倉庫,但是開發者和使用者之間的互動并沒有多少改觀。
現在開始使用 github.com,最開始使用 github, 是因為想要翻譯 Git Communnity Book中文版。我最開始是自己一個人把翻譯,譯完后的內容提交到自己倉庫 里。后來 liuw 同學加入了進來,他 fork 了我的倉庫,然后每次譯完后他提交到他自己的倉庫,我再把他的工作合并進來。再后來,有很多朋友也可過來幫忙,他們 fork 了我的倉庫后,發現了我翻譯中的問題,直接給發一個 pull request, 然后要只在 github 界面上點擊,就可以直接合并到我的 倉庫 。
目前大家公認,github 是程序員的 facebook,當然這也和 Git 分布式版本控制的特性密不可分。
Github:程序員的Facebook
Paas 應用
讀者中如果有 web developer 的話,肯定對軟件部署過程的繁瑣深有體會。
Web應用部署(圖片來源)
但是現在:
$ heroku create Created sushi.herokuapp.com | git@heroku.com:sushi.git $ git push heroku master -----> Heroku receiving push -----> Rails app detected -----> Compiled slug size is 8.0MB -----> Launching... done, v1 http://sushi.herokuapp.com deployed to Heroku
在 heroku 這個 Paas 平臺的只需要二行命令: heroku create、 git push heroku master就可以在服務器上創建應用并部署;當這離不開 Git 的支持。
移動開發
- Android
Android 之父 Andy Rubin 在他的微博上有一句被人廣為引用的話:
開放的定義是: the definition of open: mkdir android cd android repo init -u git://android.git.kernel.org/platform/manifest.git repo sync make
通過上面的的五行命令,就可以下載 Android系統的絕大部分源代碼,并且成功編譯。Android 的源碼管理也是基于 Git 的,雖然的有所有擴展。
- iOS
從 Xcode4 起,Apple 的 Xcode 就內置支持 Git,可以在創建開發項目時,同時創建一個 Git 倉庫;如果現在要在 iOS 平臺開發復雜的 App,沒有 Git 的支持真是難以想像!
但是……Git 不好學。
Git 的學習門檻比較高,學習的過程有一點點像當年學習MFC,學習的曲線特別陡。Git 標準界面是命令行,雖然的有很多優秀的圖形界面工具,但是如果在不了解 Git 的原理(或是說熟練使用 Git 命令行)的情況下,想要成功使用Git,就如同一個 C 程序員不懂 指針 一樣難以想像。
我從去年4月來到現在的公司,開始組隊開發 iOS 上面的產品,同時也在 team 里面推廣使用 Git。team 里面有剛畢業的新人,也有工作經驗豐富的老手,為了培訓使用 Git,我也著實想了不少辦法,雖然用了起來,但是花了牛力。我當時在想如果一款像金山打字通一樣的練習軟件,同時配合相應的教程與面對面交流,定能事半功倍。
前幾個月,一個很偶然的機會,我在 ruby-china 上發現了有人在介紹使用 githug。
Githug:學習 Git 的金山打字通
Githug is designed to give you a practical way of learning git. It has a series of levels, each utilizing git commands to ensure a correct answer.
以上介紹來自 githug 官網。簡單的說, githug 是一個 git 游戲,里面設置很多的關卡來模擬我們在使用 git 命令行的場景;每一個關卡是一個主題,如果把這個游戲玩轉了,同時再配合著了解一些 Git 的原理,git 的使用應沒有多大的問題。
這就是我心目中的那個金山打字通!
于是我想就配合 githug 來寫一個教程,來幫助 Git 的初學者,能讓其在學習的過程中起到事半功倍的作用;當然以后在公司里的新人培訓上自己也可以拿來做教材,真是一舉多得。這就是這次這個《Githug攻略本》的由來啦。
在本系列的第二篇,我會介紹如何配置 Git 和 Githug 的環境。敬請期待!
【51CTO特約專稿,轉載請注明出處與原文作者!】