一、GitHub介紹
GitHub是一個面向開源及私有軟體專案的託管平臺,因為只支援git 作為唯一的版本庫格式進行託管,故名GitHub。
Github可以託管各種git庫,並提供一個web介面(使用者名稱.github.io/倉庫名)
官方網站:www.github.com
1、獲取最新最熱門最實用的開源元件,有助於開發公司專案;
2、獲取最流行的技術相關原始碼,有助於參考學習借鑑;
3、參與感興趣的開源專案,增強與他人協作開發的能力;
4、建立屬於自己的開源專案,提升程式設計能力,打造個人名片。
二、概念介紹
1、 倉庫主頁
倉庫主頁主要顯示專案的資訊;
如:專案程式碼,版本,收藏/關注/fork情況等。
2、個人主頁
個人主頁主要顯示個人資訊:頭像,個人簡介,關注我的人,我關注的人,我關注的git庫,我的開源專案,我貢獻的開源專案等資訊。
3、倉庫(repository)
倉庫用來存放專案程式碼,每個專案對應一個倉庫,多個開源專案就意味著多個倉庫。
4、收藏(Star)
收藏當前專案,方便之後學習檢視
5、複製專案(fork)
當看到比較好的專案的時候,可以選擇將專案fork,此時會在自己的github賬號中得到一個一模一樣的專案,可以在此專案的基礎之上自己新增額外的功能。
注意: 每次fork的專案會獨立存在自己的github上,如果修改了不會對原專案產生影響
6、發起請求(pull Request)
當fork了其他的專案之後,如果需要將自己修改的程式碼提交到原來的初始專案中,此時就需要傳送一個pull request請求,等待原始專案的作者同意或者拒絕,如果同意了,就會將此修改合併到原始專案中。
7、關注(Watch)
關注專案,當專案有更新的時候可以接受通知,檢視最近的更新。
8、問題(Issue)
issues功能被用來追蹤各種想法,增強功能,任務,bug等。
三、基本特點
從程式碼自動化到雲:使用GitHub Actions透過GitHub Packages和內建CI/CD更快地迴圈生產程式碼並簡化工作流。
自動化工作流:在管理程式碼的同一個位置以所需方式生成、測試、部署和執行CI/CD。從任何GitHub事件到任何可用API觸發Actions。使用所選語言生成Actions,或從社群建立的數千個工作流和Actions中進行選擇。
帶有程式碼的家庭包:使用Actions將新的包版本自動釋出到GitHub Packages。在CI/CD工作流中安裝託管在GitHub Packages或首選包登錄檔上的包和映像。它對於開放原始碼始終免費,Actions內的資料傳輸對所有人都無限制。
共同保護軟體安全:GitHub在保護全球程式碼安全方面扮演著重要的角色-開發人員、維護人員、研究人員和安全團隊。在GitHub上,各地的開發團隊都可以協同工作,以保護全球軟體供應鏈的安全,從分支到完成。
獲取有關程式碼中漏洞的警報:GitHub持續掃描常用語言的安全建議。此外,此功能還會向受影響的儲存庫的維護人員傳送安全警報,並提供詳細資訊,以便他們能夠修正風險。
自動更新漏洞:GitHub監視專案依賴項,並自動開啟拉取請求,以將依賴項更新為可解決已知漏洞的最低版本。
查詢其他工具忽略的漏洞:CodeQL是行業領先的語義程式碼分析引擎。GitHub的革命性方法將程式碼視為資料,以更快地識別安全漏洞。
消除變體:永遠不會再犯相同的錯誤。主動漏洞掃描可防止漏洞進入生產環境。
確保令牌安全:意外地將令牌提交到公共儲存庫,在20家服務提供商的支援下,GitHub會採取措施確保安全。
四、團隊開發
GitHub不僅是一個程式碼託管平臺,也是一個開發者社交平臺。開發者可以在GitHub上瀏覽其他專案並與專案作者進行交流和合作,這種社交共享的形式促進了開發者之間的交流和合作,推動著技術的進步和創新。GitHub的Issues功能為開發者提供了一個問題討論與解答的平臺,開發者可以提交問題、報告bug以及參與討論,其他開發者可以及時給予解答和幫助,這種社交共享的形式極大地提高了問題解決的效率,為開發者提供了更好的技術支援。
GitHub的獨特賣點在於從另外一個專案進行分支的簡易性。為一個專案貢獻程式碼非常簡單:首先點選專案站點的Fork的按鈕,然後將程式碼檢出並將修改加入到剛才分出的程式碼庫中,最後透過內建的pull request機制向專案負責人申請程式碼合併。
GitHub已吸引了全球超過500 000名開發者註冊並貢獻了超過1億個開源專案,成為管理軟體開發以及發現已有程式碼的首選方法。隨著越來越多的應用程式轉移到了雲上,GitHub已經成為了管理軟體開發以及發現已有程式碼的首選方法。