好代码是管出来的——使用GitHub
前面的文章介紹了Git的基本概念和用法,本文則是基于GitHub的一個(gè)實(shí)踐介紹,主要內(nèi)容有:
GitHub簡(jiǎn)介
個(gè)人與組織
倉(cāng)庫(kù)的創(chuàng)建與維護(hù)
Fork與pull request
小結(jié)
GitHub簡(jiǎn)介
GitHub是一個(gè)Git的遠(yuǎn)程代碼托管平臺(tái),它除了提供代碼托管外,還提供了如問(wèn)題發(fā)布、pull request、報(bào)表統(tǒng)計(jì)等功能,下圖為EFCore項(xiàng)目的貢獻(xiàn)者統(tǒng)計(jì)信息:
GitHub提供了一整套遠(yuǎn)程協(xié)作的解決方案,所以是開(kāi)源項(xiàng)目的首選平臺(tái),許多知名項(xiàng)目都托管在GitHub上。
GitHub可以免費(fèi)的創(chuàng)建自己的開(kāi)源代碼倉(cāng)庫(kù),同時(shí)有付費(fèi)服務(wù),如私有倉(cāng)庫(kù)、GitHub的企業(yè)解決方案等。
個(gè)人與組織
GitHub中提供了個(gè)人倉(cāng)庫(kù)和組織倉(cāng)庫(kù),分別適合個(gè)人開(kāi)源項(xiàng)目以及組織開(kāi)源項(xiàng)目。
個(gè)人倉(cāng)庫(kù)主頁(yè):
組織倉(cāng)庫(kù)首頁(yè):
創(chuàng)建組織:
填寫(xiě)組織信息:
倉(cāng)庫(kù)的創(chuàng)建與維護(hù)
1.創(chuàng)建一個(gè)倉(cāng)庫(kù)(個(gè)人和團(tuán)隊(duì)倉(cāng)庫(kù)創(chuàng)建類(lèi)似,下圖是團(tuán)隊(duì)倉(cāng)庫(kù))
2. 倉(cāng)庫(kù)的維護(hù):
針對(duì)每一個(gè)倉(cāng)庫(kù),GitHub提供了代碼管理(Code)、問(wèn)題管理(Issues)、拉請(qǐng)求(Pull Request)、項(xiàng)目管理(Projects)、百科(Wiki)、統(tǒng)計(jì)(Insights)、倉(cāng)庫(kù)設(shè)置(Settings)功能,通過(guò)這些功能可以對(duì)代碼倉(cāng)庫(kù)進(jìn)行維護(hù):
Fork與Pull request
Fork和Pull request是GitHub上完成代碼共享的核心功能,下面就介紹如何使用Fork和Pull Request完成代碼貢獻(xiàn):
1. 將貢獻(xiàn)目標(biāo)倉(cāng)庫(kù)Fork到自己的倉(cāng)庫(kù)中:
2. 獲取Fork后的倉(cāng)庫(kù),獲取并對(duì)代碼進(jìn)行修改最后推送到遠(yuǎn)程分支(直接使用master分支):
修改代碼后將修改的內(nèi)容推到遠(yuǎn)程倉(cāng)庫(kù):
注:更多使用Git的內(nèi)容參考:《好代碼是管出來(lái)的——使用Git來(lái)管理源代碼》以及《好代碼是管出來(lái)的——Git的分支工作流與Pull Request》。
3. 發(fā)起Pull Request:
創(chuàng)建新的pull request將會(huì)顯示以下信息(代碼由SelimTeam倉(cāng)庫(kù)合并到y(tǒng)qszt的倉(cāng)庫(kù)、代碼是可合并的以及代碼差異信息):
當(dāng)點(diǎn)擊“Create Pull Request”按鈕后,該請(qǐng)求將會(huì)被創(chuàng)建。
4. 處理Pull Request:
yqszt/MyBlog庫(kù)擁有者,可以在pull request選項(xiàng)卡中看到相應(yīng)的信息并進(jìn)行合并:
文件差異:
合并Pull Request:
合并結(jié)果:
小結(jié)
本文介紹了如何使用GitHub來(lái)個(gè)人/團(tuán)隊(duì)代碼倉(cāng)庫(kù),對(duì)于一個(gè)GitHub倉(cāng)庫(kù)來(lái)說(shuō)除了提供基礎(chǔ)的代碼版本管理功能以外還提供了問(wèn)題管理、項(xiàng)目管理、百科、拉請(qǐng)求、數(shù)據(jù)統(tǒng)計(jì)等功能,倉(cāng)庫(kù)的擁有者(開(kāi)發(fā)者)可以使用GitHub進(jìn)行項(xiàng)目管理、代碼管理,還可以將相關(guān)知識(shí)通過(guò)百科進(jìn)行發(fā)布,以便于項(xiàng)目的受益者、貢獻(xiàn)者能夠快速獲得項(xiàng)目信息,而貢獻(xiàn)者除了可以通過(guò)Wiki獲取信息外,還可以Issue、Pull Request對(duì)項(xiàng)目提出疑問(wèn)或進(jìn)行貢獻(xiàn),擁有者和貢獻(xiàn)者所有的溝通都可以通過(guò)Github來(lái)完成。
另外Github的fork與pull request實(shí)際上就是上一篇文章中提到的“集成管理者工作流”的實(shí)現(xiàn),其中在對(duì)pull request的代碼進(jìn)行合并時(shí),實(shí)際上還強(qiáng)制進(jìn)行了代碼審查,這種工作流模式即適合本地的開(kāi)發(fā)團(tuán)隊(duì),也適合開(kāi)發(fā)人員來(lái)自世界各地的開(kāi)源項(xiàng)目。
從這些方面看來(lái)Github不再是一個(gè)簡(jiǎn)單的Git遠(yuǎn)程倉(cāng)庫(kù)托管平臺(tái),而是一個(gè)分布式的軟件開(kāi)發(fā)管理解決方案。
PS:Github被微軟收購(gòu),今后Github又會(huì)與.Net生態(tài)圈擦出什么樣的火花?拭目以待。
相關(guān)文章:
好代碼是管出來(lái)的——使用Git來(lái)管理源代碼
好代碼是管出來(lái)的——Git的分支工作流與Pull Request
原文地址:https://www.cnblogs.com/selimsong/p/9135514.html?
.NET社區(qū)新聞,深度好文,歡迎訪(fǎng)問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的好代码是管出来的——使用GitHub的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 好代码是管出来的——Git的分支工作流与
- 下一篇: 在Docker中部署Asp.net co