從 0 開始學習 GitHub 系列之【GitHub 常見的幾種操作】
作者:stormzhang
來源:微信公眾號 stormzhang
更多精彩文章,關注專欄:學習編程 - 知乎專欄
之前寫了一個 GitHub 系列,反響很不錯,突然發現竟然還落下點東西沒寫,前段時間 GitHub 也改版了,藉此機會補充下。
我們都說開源社區最大的魅力是人人多可以參與進去,發揮眾人的力量,讓一個項目更完善,更強壯。那麼肯定有人疑問,我自己目前還沒有能力開源一個項目,但是想一起參與到別的開源項目中,該怎麼操作呢?那麼今天,就來給大家一起介紹下 GitHub 上的一些常見的操作,看完之後你就知道方法了。
我們姑且以 Square 公司開源的 Retrofit 為例來介紹。
打開鏈接:
GitHub - square/retrofit: Type-safe HTTP client for Android and Java by Square, Inc.
然後看到如下的項目主頁:
可以看到一個項目可以進行的操作主要就是兩部分,第一部分包括 Watch、Star、Fork ,這三個操作之前的系列介紹過了,這裡就不啰嗦了。
我們著重來介紹第二部分,分別包括 Code、Issues、Pull requests、Projects、Wiki、Pulse、Graphs。接下來我們來一個個解釋下。
- Code
這個好理解,就是你項目的代碼文件而已,這裡說明一下,每個項目通常都會有對該項目的介紹,只需要在項目的根目錄里添加一個 README.md 文件就可以,使用 markdown 語法,GitHub 自動會對該文件進行渲染。
- Issues
Issues 代表該項目的一些問題或者 bug,並不是說 Issues 越少越好,Issues 被解決的越多說明項目作者或者組織響應很積極,也說明該開源項目的作者很重視該項目。我們來看下 Retrofit 的 Issues 主頁,截至目前 close(解決) 了 1305 個 Issue,open (待解決)狀態的有 37 個,這解決問題的比例與速度值得每位開源項目的作者學習。
同樣的,大家在使用一些開源項目有問題的時候都可以提 Issue,可以通過點擊右上角的 New Issue 來新建 Issue,需要添加一個標題與描述就可以了,這個操作很簡單。
- Pull requests
我們都知道 GitHub 的最大魅力在於人人都可參與,比如別人開源一個項目,我們每個人都可以一起參與開發,一起來完善,而這都通過 Pull requests 來完成,簡稱 PR。這個沒法在 Retrofit 演示,下面我就以我自己在 GitHub 上的一個項目 9GAG 來給大家詳細演示下怎麼給一個項目發起 PR:
提前說明下,你必須確保你可以正常向 GitHub 提交代碼,如果不可以的話,請看我之前的系列文章。
第一步登錄你的 GitHub 賬號,然後找到你想發起 PR 的項目,這裡以 [9GAG](GitHub - stormzhang/9GAG: Android unofficial REST Client of 9GAG.) 為例,點擊右上角的 Fork 按鈕,然後該項目就出現在了你自己賬號的 Repository 里。
請注意,這個項目原本是屬於 GitHub 賬號 stormzhang 下的,為了演示,我自己又重新註冊了另一個賬號叫 googdev 單純為了演示而用。
Fork 之後,在賬號 googdev 下多了一個 9GAG 的項目,截圖顯示如下:
可以看到 Fork 過來的項目標題底部會顯示一行小字:fork from stormzhang/9GAG,除此之外,項目代碼跟原項目一模一樣,對於原項目來說,相當於別人新建了一個分支而已。
第二步,把該項目 clone 到本地,然後修改的 bug 也好,想要新增的功能也好,總之把自己做的代碼改動開發完,保存好。為了方便演示,我這裡只在原項目的 README.md 文件添加了一行文字:Fork from stormzhang !
接著,把自己做的代碼改動 push 到 你自己的 GitHub 上去。
相信看過我前面教程的同學這一步應該都會,不會的可以滾回去看前面的教程了。
第三步,點擊你 Fork 過來的項目主頁的 Pull requests 頁面,
點擊 New pull request 按鈕緊接著到如下頁面:
這個頁面自動會比較該項目與原有項目的不同之處,最頂部聲明了是 stormzhang/9GAG 項目的 master 分支與你 fork 過來的 googdev/9GAG 項目 master 分支所做的比較。
然後最頂部可以方便直觀的看到到底代碼中做了哪些改動,你們也看到我就是加了一句 Fork from stormzhang !
同樣的我寫好標題和描述,然後我們點擊中間的 Create pull request 按鈕,至此我們就成功給該項目提交了一個 PR。
然後就等著項目原作者 review 你的代碼,並且決定會不會接受你的 PR,如果接受,那麼恭喜你,你已經是該項目的貢獻者之一了。
- Projects
這個是最新 GitHub 改版新增的一個項目,這個項目就是方便你把一些 Issues、Pull requests 進行分類,反正我覺得該功能很雞肋,起碼到目前為止基本沒人用該功能,你們了解下就好。
- Wiki
一般來說,我們項目的主頁有 http://README.me 基本就夠了,但是有些時候我們項目的一些用法很複雜,需要有詳細的使用說明文檔給開源項目的使用者,這個時候就用到了 Wiki。
使用起來也很簡單,直接 New Page ,然後使用 markdown 語法即可進行編寫。
- Pulse
Pulse 可以理解成該項目的活躍匯總。包括近期該倉庫創建了多少個 Pull Request 或 Issue,有多少人參與了這個倉庫的開發等,都可以在這裡一目了然。
根據這個頁面,用戶可以判斷該項目受關注程度以及項目作者是否還在積极參与解決這些問題等。
- Graphs
Graphs 是以圖表的形式來展示該項目的一個整體情況。比如項目的全部貢獻人,比如 commits 的圍度分析,比如某天代碼提交的頻繁程度等。
- Settings
如果一個項目是自己的,那麼你會發現會多一個菜單 Settings,這裡包括了你對整個項目的設置信息,比如對項目重命名,比如刪除該項目,比如關閉項目的 Wiki 和 Issues 功能等,不過大部分情況下我們都不需要對這些設置做更改。感興趣的,可以自行看下這裡的設置有哪些功能。
以上就包含了一個 GitHub 項目的所有操作,相信大家看完之後對 GitHub 上一些常用的操作都熟悉了,從現在開始,請一起參與到開源社區中來吧,開源社區需要我們每個人都貢獻一份力,這樣開源社區才能越來越強大,也才能對更多的人有幫助!
推薦閱讀:
※【UXRen譯#124】別逗了,我們真的需要會編程的設計師嗎?
※為什麼在Code::Blocks中getchar等於4204520?