雖然大家使用的工具各有不同,但是相信每一個程式員都對SVN這種代碼管理的工作方式很熟悉了。
今天瞭解一下流行的Git和Github,是因為在使用很多java開源類庫時,發現很多都是使用github,例如Jenkins。
Git (/ɡɪt/)
is a distributed revision control system with an emphasis on speed
Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server.
簡單的說,Git擁有多個分布式repository。每一個都包含完整資訊,都可獨立工作。而不是像SVN一樣,只有一個server,其他人只是使用用戶端來訪問server而已。
每次更改,都首先提交到本地repository。程式員們可以進行under-line development。
在需要的時候,連入網路,就可簡單的和其他地方的一個或多個repository同步。
我在本地安裝了一個MSysGit,是windows版的Git工具。安裝後發現只有一個命令列介面,命令是unix-style的。
和熟悉的SVN使用的命令都幾乎一樣:
git status
git add
git commit
...
但是Git作為版本控制工具,雖然使用上和傳統的SCM很像,但工作方式還是有很大不同:
Git is all about composing and saving snapshots of your project and then working with and comparing those snapshots
所以大家可以查看下面網址詳細學習。
一個很不錯的介紹Git使用方法的網站:
http://gitref.org/index.html
關於Git的wiki也很不錯,比較詳細的描述了Git特殊的內部工作方式。但如果僅僅是想使用git,簡單瞭解一下就行了:
http://en.wikipedia.org/wiki/Git
GitHub
在開發開源項目時,仍然需要一個中心的repository,讓項目組的所有成員check in/out代碼。
這就是GitHub的用途。正如GitHub這個名字,它和Git工具很好的結合在一起。
到https://github.com/免費註冊使用者,就可以建立自己的repository。
(很可惜的是僅提供0.3G的免費空間,同時repository是公開的,任何人可以查看。。。想用更大的repository?或者個人的repository?付費吧。。。)
一旦repositroy建立成功,或加入其他的項目組,就可以方便的使用本地的Git工具將local的repository和在GitHub的repository方便的同步。
典型的工作流程是:更改代碼->提交到本地repository->同步到Github。全部過程僅需幾個命令即可完成,而且速度很快。
同步後,在本地就可以快速的查看所有相關history,提高了不少效率。同時在Github上可以瀏覽所有repository的內容,以及各個Branch的內容等等,開源嘛~
Github還有一個很好的功能:be social
註冊成功後,就可以follow你感興趣的人。這不僅僅是為了娛樂和學習,更重要的是,你可以follow你的夥伴,從而及時知道他們做了什麼更改,是否會影響你的更改,是否需要merge更改。在合作開發開源項目的時候,這個功能實在太有用了。
關於Github的使用方法,官網上註冊時有step by step的指導,非常非常簡單。。。而且logo是小貓貓,很可愛的啊~
總之Git和GitHub就是工具而已,用著試試看就明白是怎麼回事兒了。