產(chǎn)品介紹
GitHub是一個(gè)面向開(kāi)源及私有軟件項目的托管平臺,因為只支持Git作為唯一的版本庫格式進(jìn)行托管,故名GitHub。GitHub擁有1億以上的開(kāi)發(fā)人員,400萬(wàn)以上組織機構和3.3億以上資料庫
功能
作為開(kāi)源代碼庫以及版本控制系統,隨著(zhù)越來(lái)越多的應用程序轉移到了云上,Github已經(jīng)成為了管理軟件開(kāi)發(fā)以及發(fā)現已有代碼的首選方法。
如前所述,作為一個(gè)分布式的版本控制系統,在Git中并不存在主庫這樣的概念,每一份復制出的庫都可以獨立使用,任何兩個(gè)庫之間的不一致之處都可以進(jìn)行合并。
GitHub可以托管各種git庫,并提供一個(gè)web界面,但它與外國的SourceForge、Google Code或中國的coding的服務(wù)不同,GitHub的獨特賣(mài)點(diǎn)在于從另外一個(gè)項目進(jìn)行分支的簡(jiǎn)易性。為一個(gè)項目貢獻代碼非常簡(jiǎn)單:首先點(diǎn)擊項目站點(diǎn)的“fork”的按鈕,然后將代碼檢出并將修改加入到剛才分出的代碼庫中,最后通過(guò)內建的“pull request”機制向項目負責人申請代碼合并。已經(jīng)有人將GitHub稱(chēng)為代碼玩家的MySpace。
在GitHub進(jìn)行分支就像在Myspace(或Facebook)進(jìn)行交友一樣,在社會(huì )關(guān)系圖的節點(diǎn)中不斷的連線(xiàn)。
GitHub項目本身自然而然的也在GitHub上進(jìn)行托管,只不過(guò)在一個(gè)私有的,公共視圖不可見(jiàn)的庫中。開(kāi)源項目可以免費托管,但私有庫則并不如此。Chris Wanstrath,GitHub的開(kāi)發(fā)者之一,肯定了通過(guò)付費的私有庫來(lái)在財務(wù)上支持免費庫的托管這一計劃。
通過(guò)與客戶(hù)的接洽,開(kāi)發(fā)FamSpam,甚至是開(kāi)發(fā)GitHub本身,GitHub的私有庫已經(jīng)被證明了物有所值。任何希望節省時(shí)間并希望和團隊其它成員一樣遠離頁(yè)面頻繁轉換之苦的人士都會(huì )從GitHub中獲得他們真正想要的價(jià)值。
在GitHub,用戶(hù)可以十分輕易地找到海量的開(kāi)源代碼。
特點(diǎn)
從代碼自動(dòng)化到云:使用 GitHub Actions 通過(guò) GitHub Packages 和內置 CI/CD 更快地循環(huán)生產(chǎn)代碼并簡(jiǎn)化工作流。
自動(dòng)化工作流:在管理代碼的同一個(gè)位置以所需方式生成、測試、部署和運行 CI/CD。 從任何 GitHub 事件到任何可用 API 觸發(fā)Actions。 使用所選語(yǔ)言生成 Actions,或從社區創(chuàng )建的數千個(gè)工作流和 Actions 中進(jìn)行選擇。
帶有代碼的家庭包:使用 Actions 將新的包版本自動(dòng)發(fā)布到 GitHub Packages。 在 CI/CD 工作流中安裝托管在 GitHub Packages 或首選包注冊表上的包和映像。 它對于開(kāi)放源代碼始終免費,Actions 內的數據傳輸對所有人都無(wú)限制。
共同保護軟件安全:GitHub 在保護全球代碼安全方面扮演著(zhù)重要的角色 - 開(kāi)發(fā)人員、維護人員、研究人員和安全團隊。 在GitHub上,各地的開(kāi)發(fā)團隊都可以協(xié)同工作,以保護全球軟件供應鏈的安全,從分支到完成。
獲取有關(guān)代碼中漏洞的警報:GitHub 持續掃描常用語(yǔ)言的安全建議。 此外,此功能還會(huì )向受影響的存儲庫的維護人員發(fā)送安全警報,并提供詳細信息,以便他們能夠修正風(fēng)險。
自動(dòng)更新漏洞:GitHub監視項目依賴(lài)項,并自動(dòng)打開(kāi)拉取請求,以將依賴(lài)項更新為可解決已知漏洞的最低版本。
查找其他工具忽略的漏洞:CodeQL 是行業(yè)領(lǐng)先的語(yǔ)義代碼分析引擎。 GitHub的革命性方法將代碼視為數據,以更快地識別安全漏洞。
消除變體:永遠不會(huì )再犯相同的錯誤。 主動(dòng)漏洞掃描可防止漏洞進(jìn)入生產(chǎn)環(huán)境。
確保令牌安全:意外地將令牌提交到公共存儲庫,在 20 家服務(wù)提供商的支持下,GitHub 會(huì )采取措施確保安全。
應用
GitHub使用git分布式版本控制系統,而git最初是LinusTorvalds為幫助Linux開(kāi)發(fā)而創(chuàng )造的,它針對的是Linux平臺,因此git和Windows從來(lái)不是最好的朋友,因為它一點(diǎn)也不像Windows。GitHub發(fā)布了GitHub for Windows,為Windows平臺開(kāi)發(fā)者提供了一個(gè)易于使用的Git圖形客戶(hù)端。
GitHub for Windows是一個(gè)Metro風(fēng)格應用程序,集成了自包含版本的Git,bash命令行shell,PowerShell的posh-git擴展。GitHub為Windows用戶(hù)提供了一個(gè)基本的圖形前端去處理大部分常用版本控制任務(wù),可以創(chuàng )建版本庫,向本地版本庫遞交補丁,在本地和遠程版本庫之間同步。微軟也通過(guò)CodePlex向開(kāi)發(fā)者提供git版本控制系統,而GitHub創(chuàng )造了一個(gè)更具有吸引力的Windows版本。