標籤:
Git是一個開源的分布式版本控制系統,用以有效、高速的處理各種規模的項目版本管理, 它是 Linux Torvalds 為了協助管理 Linux 核心開發而開發的一個開放源碼的版本控制軟體,後來得到廣泛的使用。
Github是一個代碼託管平台和開發人員社區,開發人員可以在Github上建立自己的開源項目並與其他開發人員協作編碼。創業公司可以用它來託管軟體項目,開源項目可以免費託管,私人項目需付費。Github同樣可以被諸如Capistrano和Vlad the Deployer這樣的部署工具所使用,而且GitHub已經有了一組令人信服的特性,除了命令式的庫瀏覽器和一個項目Wik,GitHub甚至還包括了一個GitHub gem,以使通過shell方式使用GitHub更為方便。
GitHub上已自動設定的Mac膝上型電腦,可以轉換設定Linux或Windows機器。BOXEN是GitHub的自動化工具,設定和配置的Mac膝上型電腦軟體開發或其他類型的工作,正在使用他們的開發人員等。其準備系統以自動方式和作為無差錯儘可能用最少的幹預工作。根據GitHub上,與一個新的開發機器上,他的Mac系統成立,並準備在30分鐘內提交代碼。
作為開原始碼庫以及版本控制系統,Github目前擁有140多萬開發人員使用者。隨著越來越多的應用程式轉移到了雲上,Github已經成為了管理軟體開發以及發現已有代碼的首選方法。
Git與Github在功能上相輔相成,但兩者也有獨自的過人之處,可謂是“巾幗不讓鬚眉”啊!
同樣作為一個分布式的版本控制系統,在Git中並不存在主庫這樣的概念,每一份複製出的庫都可以獨立使用,任何兩個庫之間的不一致之處都可以進行合并。且GitHub可以託管各種git庫,並提供一個web介面,但與其它像 SourceForge或Google Code這樣的服務不同,GitHub的獨特賣點在於從另外一個項目進行分支的簡易性。為一個項目貢獻代碼非常簡單:首先點擊項目網站的“fork”的按鈕,然後將代碼檢出並將修改加入到剛才分出的程式碼程式庫中,最後通過內建的“pull request”機制向項目負責人申請代碼合并。
GitHub主要用Rails實現,在進行的post-commit整合小應用完全使用Merb編寫,使用了Python的Pygments來做格式高亮顯示,另外,還用了Ara T. Howard‘s Bj加上一些Ruby指令碼來做我們的排隊系統。當然,還採用了Ruby Grit庫來和Git進行互動。
在Windows領域兩者也有極大的應用,GitHub 使用 git 分布式版本控制系統,而 git 最初是 Linus Torvalds 為協助Linux開發而創造的,它針對的是 Linux 平台,因此 git 和 Windows 從來不是最好的朋友,因為它一點也不像 Windows。GitHub 發布了GitHub for Windows,為 Windows 平台開發人員提供了一個便於使用的 Git 圖形用戶端。
GitHub for Windows 是一個 Metro 風格應用程式,整合了自包含版本的 Git,bash 命令列 shell,PowerShell 的 posh-git 擴充。GitHub 為 Windows 使用者提供了一個基本的圖形前端去處理大部分常用版本控制任務,可以建立版本庫,向本地版本庫遞交補丁,在本地和遠程版本庫之間同步。微軟也通過CodePlex向開發人員提供 git 版本控制系統,而 GitHub 創造了一個更具有吸引力的 Windows 版本。
總的來說,兩者關係可以這樣描述:Git是一款免費、開源的分布式版本控制系統,而Github是用Git做版本控制的代碼託管平台,相當於本地、公司伺服器、Github網站伺服器都裝Git做版本控制,只不過Github的伺服器強大些,對全球使用者託管的項目用Git做版本控制,打個比喻即為“git是一張弓,github是靶子,你的原始碼是箭!”
其次兩者在使用方法上也應該有所借鑒和區分,一些常用命令如下:
git複製項目(下載代碼)
#git clone http://192.168.0.223/git/test
git clone [email protected]:laiweiwei/vms.git
git clone [email protected]:syking/smrt-lbs-new.git複製粘帖方法:git bash控制台--標題列--右鍵--編輯--標記/粘帖git更新內容cd /dcd play/smrt-lbsgit pull origin提交到本地cd /dcd play/smrt-lbsgit add .git commit -m "some string"提交到伺服器git push -u origin master刪除檔案(直接刪除後需要重新用命令刪除)$ git rm app/views/Application/index.htmlrm ‘app/views/Application/index.html‘查看檔案狀態git status舉個例子:假設你的資料庫預設分支為 master,當你有一個新的項目或者想法時建立一個分支,然後在分支上開發,最後再合并到 master 上,具體操作方式如下:建立新分支並命名,此處我們建立名為 new_sub 的分支 git branch new_sub移到新分支上git checkout new_sub開始你的工作並儲存結果添加所改動的檔案以便提交git add .提交改動git commit -m "made some changes"回到 master 主分支git checkout master合并到主分支git merge new_subgit branch 可顯示所有的分支刪除分支git branch -d new_sub 作為開原始碼庫的Git與GitHub,兩者的未來和前景也必定春光無限。據統計,全球最大的社交編程及代碼託管網站GitHub以其開創性的新型軟體開發方式並且能高效利用有限的資源通過自力更生實現公司盈利和300%的年度營收增長成功的吸引知名風投機構Andreessen Horowitz一億美金的投資。新的資金注入將協助GitHub平台得到進一步的改進和擴充。 最後,希望廣大學者可以從Git與GitHub開原始碼庫中得到有益的協助。
Git與GitHub說明分析