GitHub

GitHub 
      GitHub是一個用於使用Git版本控制系統的項目的基於網際網路的存取服務。它是由GitHub公司(先前被稱作用Logical Awesome)的開發者Chris Wanstrath, PJ Hyett, 和 Tom Preston-Werner 使用Ruby on Rails寫成的。GitHub同時提供商業賬戶和為開源項目提供的免費賬戶。根據在2009年的Git用戶調查,GitHub是最流行的Git存取站點。[2]

它提供了像 feeds,followers 和顯示開發者們怎樣在他們的版本庫的版本上工作的網路圖表。

GitHub也經營了一個pastebin風格的站點,維基用於個人信息庫,並且可以通過一個git版本庫進行編輯網頁。

來源: http://zh.wikipedia.org/wiki/GitHub


Github Pages 是什麼?
      它號稱程序員的Facebook,有著極高的人氣,許多重要的項目都託管在上面。簡單說,它是一個具有版本管理功能的代碼倉庫,每個項目都有一個主頁,列出項目的源文件。
      但是對於一個新手來說,看到一大堆源碼,只會讓人頭暈腦漲,不知何處入手。他希望看到的是,一個簡明易懂的網頁,說明每一步應該怎麼做。因此,github就設計了Pages功能,允許用戶自定義項目首頁,用來替代默認的源碼列表。所以,github Pages可以被認為是用戶編寫的、託管在github上的靜態網頁。
     github提供模板,允許站內生成網頁,但也允許用戶自己編寫網頁,然後上傳。

來源: http://www.ruanyifeng.com/blog/2012/08/blogging_with_jekyll.html

       Git是一個分佈式的版本控制系統,最初由Linus Torvalds編寫,用作Linux內核代碼的管理。在推出後,Git在其它項目中也取得了很大成功,尤其是在Ruby社區中。目前,包括Rubinius和Merb在內的很多知名項目都使用了Git。 Git同樣可以被諸如Capistrano和Vlad the Deployer這樣的部署工具所使用。
 
       GitHub有170萬名軟件開發人員的忠實用戶,他們平均每天更新8萬個並新建7千個軟件庫。對GitHub網站上託管的總計超過300萬個軟件庫,其聯合創始人Chris Wanstrath曾經形像地稱其為“程序員的維基百科全書”

基於Rails的Git庫託管

      如前所述,作為一個分佈式的版本控制系統,在Git中並不存在主庫這樣的概念,每一份複製出的庫都可以獨立使用,任何兩個庫之間的不一致之處都可以進行合併。

      GitHub可以託管各種git庫,並提供一個web界面,但與其它像SourceForge或Google Code這樣的服務不同,GitHub的獨特賣點在於從另外一個項目進行分支的簡易性。為一個項目貢獻代碼非常簡單:首先點擊項目站點的“fork”的按鈕,然後將代碼檢出並將修改加入到剛才分出的代碼庫中,最後通過內建的“pull request”機制向項目負責人申請代碼合併。已經有人將GitHub稱為代碼玩家的MySpace。

      在GitHub進行分支就像在Myspace(或Facebook…)進行交友一樣,在社會關係圖的節點中不斷的連線。

      GitHub項目本身自然而然的也在GitHub上就像託管,只不過在一個私有的,公共視圖不可見的庫中。開源項目可以免費託管,但私有庫則並不如此。 Chris Wanstrath,GitHub的開發者之一,肯定了通過付費的私有庫來在財務上支持免費庫的託管這一計劃。

  是的,我們正是這麼計劃的。通過與客戶的接洽,開發FamSpam,甚至是開發GitHub本身,GitHub的私有庫已經被證明了物有所值。任何希望節省時間並希望和團隊其它成員一樣遠離頁面頻繁轉換之苦的人士都會從GitHub中獲得他們真正想要的價值。

內幕信息

    Chris Wanstrath還向記者分享了關於GitHub的一些內幕信息︰

  
    GitHub[1]主要用Rails實現。我們目前在進行的post-commit集成小應用完全使用Merb編寫。我們使用了Python的Pygments來做格式高亮顯示,另外,還用了Ara T. Howard's Bj加上一些Ruby腳本來做我們的排隊系統。當然,我們用了Ruby Grit庫來和Git進行交互。

    GitHub已經有了一組引人注目的特性,除了命令式的庫瀏覽器和一個項目Wik,GitHub甚至還包括了一個GitHub gem,以使通過shell方式使用GitHub更為方便。

    更多的未來特性已經在計劃中︰許多人都希望能有一個條目系統,因此一個簡單的條目系統已經在開發中。此外,正如我前面所言,我們尚在進行RubyGems服務器和一些之前留出的post-commit鉤子方面的工作。如果你不能或就是不想託管一個你自己的守護進程,你可以使用我們所提供的。

    我們還在開發一些特性來幫助公司在使用Github時可以停留在sync之上。

      最後,我們也在進行API發布方面的工作。我們很快就會發布一些只讀性的API,隨後是一些很強大的“寫”集成。你可以使用API將新的事件發佈到新聞feed中,發消息和做其他許多很酷的事情。

      目前GitHub尚未設定官方版本的發布日期,不過估計在三月底(現在GitHub已經上線,但只能通過邀請註冊)。更多關於GitHub的信息可以參見GitHub官方網站或GitHub博客。目前通過GitHub進行代碼管理的開源項目列表也已經可以查閱。

GitHub For Window
     GitHub 使用git 分佈式版本控制系統,而git 最初是Linus Torvalds 為幫助Linux 開發而創造的,它針對的是Linux 平台,因此git 和Windows 從來不是最好的朋友,因為它一點也不像Linux。現在,GitHub 發布了GitHub for Windows,為Windows 平台開發者提供了一個易於使用的Git 圖形客戶端。
      GitHub for Windows 是一個Metro 風格應用程序,集成了自包含版本的Git,bash 命令行shell,PowerShell 的posh-git 擴展。 GitHub 為Windows 用戶提供了一個基本的圖形前端去處理大部分常用版本控制任務,可以創建版本庫,向本地版本庫遞交補丁,在本地和遠程版本庫之間同步。微軟也通過CodePlex 向開發者提供git 版本控制系統,而GitHub 現在創造了一個更具有吸引力的Windows 版本。

來源: http://baike.baidu.com/view/3366456.htm

Git基本介紹:
 

      Git就是一套版本控制軟體,相對於subversion(SVN)的中心式版本控制,git是分散式版本控制,幾乎什麼事都在本機進行,設計上「只會增加資料」,因此不要太怕出事,東西都可輕鬆復原。每個開發者的本機端都會有完整的程式庫,都能獨立作業,不受開發主線的拘束,不需網路連線也能工作。


Git
基本操作指令介紹:

git add.  

將資料先暫存到 staging area, add 之後再新增的資料, 於此次 commit 不會含在裡面

git rm filename

Git刪除檔案

git mv filename new-filename

Git修改檔名、搬移目錄

git add 主檔名.副檔名

把個別的檔案加入staged


git reset 主檔名.副檔名

不想要再讓檔案受到版本控制

git commit -m 'commit message'

把所有檔案commit進repo,並且附上'commit message'的說明註解

git status

在操作過程中,要知道目前Repo中的檔案們到底是什麼狀況

git log

檢視Repo之前commit的歷史紀錄

參考資料

http://blog.longwin.com.tw/2009/05/git-learn-initial-command-2009/

http://www.mrmu.com.tw/2011/05/06/git-tutorial-for-beginner/