Git及Github相關內容

來源:互聯網
上載者:User

標籤:

Git及Github

GIT(分布式版本控制系統)

簡要介紹

Git是一款免費、開源的分布式版本控制系統,Git 是 Linus Torvalds 為了協助管理 Linux 核心開發而開發的一個開放源碼的版本控制軟體。用作Linux核心代碼的管理。在推出後,Git在其它項目中也取得了很大成功,尤其是在Ruby社區中。目前,包括Rubinius、Merb和Bitcoin在內的很多知名項目都使用了Git。Git同樣可以被諸如Capistrano和Vlad the Deployer這樣的部署工具所使用。

Git --- The stupid content tracker, 傻瓜內容跟蹤器。Linus Torvalds 是這樣給我們介紹 Git 的。

Git 是用於 Linux核心開發的版本控制工具。與常用的版本控制工具 CVS,Subversion 等不同,它採用了分布式版本庫的方式,不必伺服器端軟體支援(wingeddevil註:這得分是用什麼樣的服務端,使用http協議或者git協議等不太一樣。並且在push和pull的時候和伺服器端還是有互動的。),使原始碼的發布和交流極其方便。 Git 的速度很快,這對於諸如 Linux kernel 這樣的大項目來說自然很重要。 Git 最為出色的是它的合并跟蹤(merge tracing)能力。

實際上核心Team Dev決定開始開發和使用 Git 來作為核心開發的版本控制系統的時候,世界開源社群的反對聲音不少,最大的理由是 Git 太艱澀難懂,從 Git 的內部工作機制來說,的確是這樣。但是隨著開發的深入,Git 的正常使用都由一些友好的指令碼命令來執行,使 Git 變得非常好用,即使是用來管理我們自己的開發項目,Git 都是一個友好,有力的工具。現在,越來越多的著名項目採用 Git 來管理項目開發.

作為開源自由原教旨主義項目,Git 沒有對版本庫的瀏覽和修改做任何的許可權限制。

目前GIT已經可以在windows下使用,主要方法有二:msysgit和Cygwin。Cygwin和Linux使用方法類似,Windows版本的GIT提供了友好的GUI(圖形介面),安裝後很快可以上手,不在此做大篇幅介紹。

特點

分布式相比於集中式的最大區別在於開發人員可以提交到本地,每個開發人員通過複製(git clone),在本地機器上拷貝一個完整的Git倉庫。

是經典的git開發過程。

 

Git的功能特性:

從一般開發人員的角度來看,git有以下功能:

1、從伺服器上複製完整的Git倉庫(包括代碼和版本資訊)到單機上。

2、在自己的機器上根據不同的開發目的,建立分支,修改代碼。

3、在單機上自己建立的分支上提交代碼。

4、在單機上合并分支。

5、把伺服器上最新版的代碼fetch下來,然後跟自己的主分支合并。

6、產生補丁(patch),把補丁發送給主開發人員。

7、看主開發人員的反饋,如果主開發人員發現兩個一般開發人員之間有衝突(他們之間可以合作解決的衝突),就會要求他們先解決衝突,然後再由其中一個人提交。如果主開發人員可以自己解決,或者沒有衝突,就通過。

8、一般開發人員之間解決衝突的方法,開發人員之間可以使用pull 命令解決衝突,解決完衝突之後再向主開發人員提交補丁。

從主開發人員的角度(假設主開發人員不用開發代碼)看,git有以下功能:

1、查看郵件或者通過其它方式查看一般開發人員的提交狀態。

2、打上補丁,解決衝突(可以自己解決,也可以要求開發人員之間解決以後再重新提交,如果是開源項目,還要決定哪些補丁有用,哪些不用)。

3、向公用伺服器提交結果,然後通知所有開發人員。

優點:

適合分布式開發,強調個體。

公用伺服器壓力和資料量都不會太大。

速度快、靈活。

任意兩個開發人員之間可以很容易的解決衝突。

離線工作。

缺點:

資料少(起碼中文資料很少)。

學習周期相對而言比較長。

不符合常規思維。

代碼保密性差,一旦開發人員把整個庫複製下來就可以完全公開所有代碼和版本資訊。

 

Github

準系統

 

作為開原始碼庫以及版本控制系統,Github擁有140多萬開發人員使用者。隨著越來越多的應用程式轉移到了雲上,Github已經成為了管理軟體開發以及發現已有代碼的首選方法[2]  。

如前所述,作為一個分布式的版本控制系統,在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中獲得他們真正想要的價值。

在GitHub,使用者可以十分輕易地找到海量的開原始碼。

github版本

2012年12月24日,GitLab 4.0 RC2 發布,開源的 Github複製。

github內幕資訊

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

GitHub主要用Rails實現。他們在進行的post-commit整合小應用完全使用Merb編寫。他們使用了Python的Pygments來做格式高亮顯示,另外,還用了Ara T. Howard‘s Bj加上一些Ruby指令碼來做他們的排隊系統。當然,他們用了Ruby Grit庫來和Git進行互動。

GitHub已經有了一組令人信服的特性,除了命令式的庫瀏覽器和一個項目Wiki,GitHub甚至還包括了一個GitHub gem,以使通過shell方式使用GitHub更為方便。更多的未來特性已經在計劃中︰

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

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

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

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

githubWindows

   GitHub 使用 git 分布式版本控制系統,而 git 最初是 Linus Torvalds 為協助Linux開發而創造的,它針對的是 Linux 平台,因此 git 和 Windows 從來不是最好的朋友,因為它一點也不像 Windows。GitHub 發布了GitHub for Windows,為 Windows 平台開發人員提供了一個便於使用的 Git 圖形用戶端。

GitHub For Windows

GitHub for Windows 是一個 Metro 風格應用程式,整合了自包含版本的 Git,bash 命令列 shell,PowerShell 的 posh-git 擴充。GitHub 為 Windows 使用者提供了一個基本的圖形前端去處理大部分常用版本控制任務,可以建立版本庫,向本地版本庫遞交補丁,在本地和遠程版本庫之間同步。微軟也通過CodePlex向開發人員提供 git 版本控制系統,而 GitHub 創造了一個更具有吸引力的 Windows 版本。

github組態管理

GitHub上已自動設定的Mac膝上型電腦,一個工具,可以轉換設定Linux或Windows機器。
  BOXEN是GitHub的自動化工具,設定和配置的Mac膝上型電腦軟體開發或其他類型的工作,正在使用他們的開發人員,律師,設計師,付貨人,等。他們的想法是準備系統以自動方式和作為無差錯儘可能用最少的幹預工作。根據GitHub上,與一個新的開發機器上,他的Mac系統成立,並準備在30分鐘內提交代碼。
  BOXEN的基礎上收集了大量的幾十個木偶模組,使設定的各種軟體,如卡桑德拉,MongoDB中,Java軟體中,Python和Ruby開發中,節點,JS,nginx的,Skype公司,甚至MINECRAFT。雖然機器上配備了一個預配置,每個使用者都可以調整它的配置應有的作用。

github融資

全球最大的社交編程及代碼託管網站GitHub以其開創性的新型軟體開發方式並且能高效利用有限的資源通過自力更生實現公司盈利和300%的年度營收增長成功的吸引知名風投機構Andreessen Horowitz一億美金的投資。新的資金注入將協助GitHub平台得到進一步的改進和擴充。

事實上,這不僅對首次接受外部投資的GitHub意義重大,同樣對於投資方Andreessen Horowitz而言,這也是其迄今為止進行過的最大一次單筆投資案。作為投資案的一部分,Andreessen Horowitz的合伙人Peter Levine將入主GitHub董事會。

根據GitHub官方解釋,這筆資金除了用於擴充員工隊伍,改進現有服務並移植到移

Github吉祥物Octocat

動平台之外,還將服務物件從原來的編程愛好者和專業軟體開發人員拓展至企業、設計師、文字工作者等更廣泛的客戶群體。

GitHub有170萬名軟體開發人員的忠實使用者,他們平均每天更新8萬個並建立7千個軟體庫。對GitHub網站上託管的總計超過300萬個軟體庫,其聯合創始人Chris Wanstrath曾經形象地稱其為“程式員的維基百科全書”。

 

Git及Github相關內容

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.