Git 是一個 Free and open source軟體,主要作用是版本控制,git是由知名的 Linux創始人Linus Torvalds所研發出來的。 起初Linux Kernel 的原始碼是使用BitKeeper來控制版本,但也因為 BitKeeper 不是自由軟體和其他爭議的情況下讓Linus開始轉向使用別的軟體,後來Linus決定自己開發,就完成了git這套軟體,而且也將Linux Kernel 這種龐大的程式碼交由git管理,所以git是足以完成龐大程式碼的管理。
“git,which is British English slang for a stupid or unpleasant person。” git的原始理念就是讓愚蠢的使用者都能順利操作,隨然在初期遭大量的反對聲浪,許多使用者覺得這個東西太過複雜,但之後有不少使用者透過一些指令簡化了複雜的步驟,讓整個git的使用變得更為方便。 目前世界是已有許多大型專案都改用git來做維護管理。像Google,Facebook,Microsoft,PostgreSQL,Android,Linux Kernel,GNOME等等,所以使用git來管理您的程式碼,更是事半功倍。
Git 的特性有
- 分散式的程式庫
git 採用與 SVN 不同的分散式程式庫,以往SVN會需要集中管理程式碼,當開發者要修改程式時,必須要有網路連到主機,而且會鎖定程式碼檔案。git 將整個程式庫都複製到開發者端,每一個開發者身上都有一個整個程式庫,即使Server損壞,也只要將其中一個程式庫復原回去,非常方便。
圖片來源: http://git-scm.com/book/en/Getting-Started-About-Version-Control
- 強大的分支與合併功能
即使git 採用分散式程式庫,表示每一個開發者都有各自的開發版本,這樣不是會造成混亂嗎? git 還有一個強大的功能就是合併,他的合併功能非常利害,可以將不同來源的程式碼做合併,只要不是同時修改到同一行,git 幾乎都可以最完整的合併。分支的功能也是git另外一個特性,善用分支可以讓開發,測試,正式版的程式碼完全分離,再配合合併的功能,實在好用!!!
圖片來源: http://git-scm.com/book/en/Git-Branching-Branching-Workflows
- 離線作業
因為git 採用分散的程式庫,開發者各自擁有程式庫,即使沒有網路(在公車上,在咖啡廳等)的環境,也可以方便的開發程式,而在有網路的時候再將程式碼合併推送(push)到伺服器端即可讓所有人同步,非常方便。
圖片來源: http://git-scm.com/book/en/Distributed-Git-Distributed-Workflows
Git 的詳細使用方法可以參考:
- http://git-scm.com/
- http://git-scm.com/book
- http://git-scm.com/book/zh (簡體中文)
|