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