github issue是做什麼的?
issue是做什麼的。
閑來無事,挖墳一座。
GitHub 的 issue 功能,對個人而言,就如同 TODO list 。
你可以把所有想要在下一步完成的工作,如 feature 添加、bug 修復等,都寫成一個個的 issue ,放在上面。既可以作為提醒,也可以統一管理。
另外,每一次 commit 都可以選擇性的與某個 issue 關聯。比如在 message 中添加 #n,就可以與第 n 個 issue 進行關聯。commit message title, #1
這個提交會作為一個 comment ,出現在編號為1的 issue 記錄中。
如果添加:- close #n
- closes #n
- closed #n
- fix #n
- fixes #n
- fixed #n
- resolve #n
- resolves #n
- resolved #n
比如
commit message title, fix #n
則可以自動關閉第 n 個 issue 。
issue 可以有額外的屬性:- Labels,標籤。包括 enhancement、bug、invalid 等,表示 issue 的類型,解決的方式。除了自帶的以外,也可以去自定義。
- Milestone,里程碑。幾經修改後,它現在已經與git tag和Github release區分開來,僅僅作為issue的一個集合。通常用來表示項目的一個階段,比如demo、release等,保護達成這些階段需要解決的問題。有時候,也會與版本計劃重合,比如v1.0、v2.0等。issue不能設置截止時間,但是milestone可以。
- Assignee,責任人。指定這個 issue 由誰負責來解決。
充分利用這些功能,讓每一個 commit 的意義更加明確,可以起到了良好的過程管理作用,使得這個 Git 庫的項目進度更加顯然。而且,這也是項目後期,寫文檔的絕佳素材。
對團隊而言,這就是一個協作系統。
現在,很多大公司的軟體研發團隊協作,都是通過 JIRA 來實現的。
目前也流行很多非代碼的團隊協作,比如 teambition、http://Tower.im、Worktile、trello 等。其實,GitHub 的 issue ,就是一個輕量級協作系統。它的 comment 支持 GitHub Flavored Markdown,可以進行內容豐富的交流。Git 本身就是分散式的代碼版本控制軟體,是為了程序員的協作而設計的。而 issue 的 Assignee 功能,就是這個在線協作系統的核心,足以讓一群線上的開發者,一起完成一個軟體項目。
最後,作為一個路人,你可以通過 issue 給別人的項目提 bug 。
參考:Closing issues via commit messages,About issues其它Github幫助,可以在此搜索:GitHub HelpIssue可以用來提出question, bug, enhancement等討論,同時他人folk提交合併後都會在Issue裡面有顯示。
對項目的Owner,Issues可以公開下一步的Feature,更好的聽取用戶建議對用戶,Issues是一個反饋平台,可以將使用時的問題發表出來,等待社區或Owner解答。我也看到一些奇葩的用法,例如把Issues當普通論壇用。
甚至有人用他寫博客Issues 路 Kjuly/issues 路 GitHub
推薦閱讀:
※把公司代碼上傳到了github上,被leader發現了怎麼辦?
※GitHub 上有哪些適合新手跟進的優質項目?
※如何在 Github 上找到適合自己水平的開源項目進行學習?
※不會用Github是怎麼樣的體驗?
※非程序員使用 GitHub 會有什麼障礙么?可以用來幹什麼?
TAG:GitHub |