本文譯自GitHub Guide主要為了科普一些GitHub上的基礎知識许赃,為和我一樣不知道如何上手渴邦,不懂概念的人提供一些幫助偎肃。(本版本不是最終版,只是大概寫了一下)
提問(Issue)是對項目進行任務跟蹤黔帕、加強和找bug的最好方式步势。這種方式有一些和Email相似驹碍,但是他可以在整個群組中進行分享和討論。大部分的軟件項目都有某種bug追蹤器脆烟。GitHub的跟蹤器叫做Issue山林,對每個代碼倉庫(repository)都有單獨的Issue組。
例如邢羔,我們看一下例子Bootstrap’s Issues section:
GitHub的Issue追蹤非常特殊驼抹,因為我們專注于協作桑孩、引用,同時擁有成熟的文本格式框冀。GitHub上一個典型的Issue如下:
· 使用標題和簡介來描述Issue的所有相關信息流椒。
· 帶顏色的標簽(labels)幫助你歸類和過濾你想看到的Issue(就像Email的標簽一樣)。
· 里程碑(milestone)就像Issue的容器明也⌒海可以將Issue進行很好的歸納整理,包括某些特性诡右、項目聲明周期歸檔等安岂。
· 一個負責人(assignee)有責任隨時處理Issue。
· 評論(Comments)允許任何有權使用代碼倉的人提供反饋帆吻。
Milestones, Labels, and Assignee
一旦你收集了一定數量的Issue域那,你也許會發(fā)現很難找到你關心的問題。通過Milestones,labels,assignees這幾個屬性可以很好的過濾和聚集Issue猜煮。
你可以通過點擊他們右側側邊欄中相對應的齒輪來改變或者增加milestone, an assignee, labels次员。
如果你沒有編輯的按鈕,那說明你不被允許去修改這些Issue王带。你可以去請求repository的擁有者將你添加為協作者淑蔚。
Milestones
Milestsones是一組Issues,一個milestone對應了該項目的特性或者時間段愕撰。人們在軟件開發(fā)的不同時期用不同的方式組織Milestones刹衫。一些GitHub上面的milestones例子:
· 測試版本(Beta Launch)——必須要在發(fā)布項目的Beta版本之前修復文件中的所有bugs。這是確保你沒有遺漏任何事情的很好方法搞挣。
· October Sprint——列出的Issues表示將在十月進行解決带迟。這種方式能夠在有很多事情需要忙碌時,集中精力解決一部分事情囱桨。
· 重構(redesign)——收集和重構文件相關的Issues仓犬。是一個收集下一步工作靈感的好方法。
Labels
Labels是組織各種類型的Issues的有效方法舍肠。Issues可以有任意多的labels搀继,你也可以通過一個或者許多l(xiāng)abels對Issue一次進行過濾。
Assignees
每一個Issue都有一個assignee——一個負責將問題推進的人翠语。Assignees的選擇如同milestones一樣叽躯,即在每個Issue頂部的灰色條進行選擇。
Notifications, @mentions, and References
在Issues中使用@提醒或者引用肌括,你可以提醒GitHub的其他用戶&組織险毁,實現跨Issues交流。這些方式提供了一個靈活的方式使正確的人有效參與,同時這些方式簡單易上手畔况。這種方式在GitHub上面各個領域都在使用——它們是文本格式化語言的一部分GitHub Flavored Markdown鲸鹦。
如果你想了解更多,點擊Mastering Markdown跷跪。
Notifications
提醒(Notifications)是GitHub中讓你隨時了解Issues的方式馋嗜。你可以用它們找到repositories中的新Issues,或者僅僅是去知曉有人需要你來提供解決方案來推進他的Issue吵瞻。
有兩種方式接受notifications:通過email或者通過web葛菇。你可以在設置確認你接收notifications的方式。如果你計劃接收許多notifications橡羞,我們建議你同時使用email和web進行參與眯停,用web進行瀏覽。
利用這些設置卿泽,只有在人們提到你的時候你才會收到emails莺债,然后通過基于web的接口來隨時瀏覽你感興趣的repositories。
你可以進入你的[提醒列表] (https://github.com/notifications)签夭。這個界面對于一次性瀏覽很多notifications非常友好齐邦,可以很方便將這些提醒標記已讀或勿擾(muted thread)。嘗試通過鍵盤快捷鍵來加速你的工作——在頁面中按下“第租?”來看哪些快捷鍵可用措拇。
標記了勿擾的通知除非你再次被@不然它就不會再次出現在你的列表。這個策略極大地幫助你應對你不感興趣的問題(或者你不熟悉的子系統問題)慎宾。如果你標記一個Issue為已讀丐吓,這條Issue就會保持這個狀態(tài)直到有人評論。
GitHub同步了email已讀/未讀的通知——如果你在Email端讀了通知趟据,那么在基于web的接口也會被記錄為已讀(如果你喜歡這個功能券犁,確保你的email能夠展示圖片)。
@mentions
@mentions是我們在GitHub中Issues時引用其他的GitHub用戶時使用之宿。在Issue的描述或者評論中族操,包括另一個GitHub用戶的@username苛坚,以便向他們發(fā)送通知比被。這個功能和推特的@功能很相似。
我們喜歡在Issue中使用 /cc
(carbon copy的縮寫)來包含別人:
在你知道具體應該提醒哪些用戶時這個功能非常有用泼舱,但是大多數時候我們是跨團隊合作的等缀,并不十分確定誰能幫助我們。
@同樣在GitHub的團隊層面有用娇昙。如果你創(chuàng)建了一個叫browser-bugs的團隊尺迂,在@acmeinc組織里,你可以用下面的方式引用這個組織:
References
通常情況下噪裕,Issues本身是依賴于其他Issues蹲盘,或者他們至少相關,同時你想要將他們聯系起來膳音。你可以通過輸入標簽加上Issue的編號召衔。
如果這個Issue是另外一個repository中的,至于要在編號前加上repository即可祭陷,如
kneath/example-project#42
苍凛。
在提交中直接引用Issues是在GitHub中使用Issue的一個有趣的方式,即在提交的文本中要包含Issue的編號兵志。
當提交合并到主干分支時醇蝴,無論你的前綴是“修復中【fixes?】”想罕、“修復完成【fixed悠栓?】”、‘【Fix弧呐?】’闸迷、“關閉中【closes】”、“關閉【closed】”還是“【close】”俘枫,系統都會自動關閉對應Issue腥沽。
引用使得深度聯系正在進行的工作與正在被跟蹤的bug成為可能,同時是增加項目中可見性的好方法鸠蚪。
Search
在搜索頁頂端是一個搜索欄今阳,允許你對Issues進行搜索。
你可以用以下方式進行搜索:
· 關鍵詞茅信,比如盾舌,all issues mentioning the sidebar
·狀態(tài),比如蘸鲸,all issues mentioning the sidebar that are closed
·受托人(Assignee)妖谴,比如,all issues mentioning the sidebar that were assigned to @mdo
我們在搜索Issue的幫助文檔會向你展示一些其他的搜索方法:使用創(chuàng)建/更新日期酌摇、標簽膝舅、作者、評論數窑多、repository擁有者等仍稀。
Overviews & Reports
在Issues之外的部分,還有兩個方式幫助你總結一些跨倉庫(repository)的Issues的問題埂息。
The Issue Dashboard
如果你在找一個界面可以列出許多項目和你有關的所有Issues技潘,那么 Issues Dashboard是一個很好的工具遥巴。這個界面與Issues section的界面非常相似,但是其對issue的展示方式非常不同:
· 所有你的和你參與協作的倉庫(repository)的Issues享幽。
· 提到你的Issues铲掐。
· 你創(chuàng)建的Issue。
如果你隸屬于組織值桩,那么每個人都有自己的Issues界面迹炼,這樣可以將組織的所有問題進行分離。
Pulse
每個倉庫(repository)下有一部分叫做Pulse——Pulse是過去一周(一天或三個月等)在倉庫(repository)中發(fā)生的所有事情的快照颠毙。當你離開倉庫而不希望在看倉庫(repository)時收到granulariy notification時斯入,這是一個跟蹤倉庫變化的好方法。
Other Uses for Issues
Issues是一個追蹤所有事情的好方法——同樣GitHub也是一個容易分享和協同合作解決Issues的好地方蛀蜜。以下是我們一些最愛:
· Bug tracker for your open source projects
· Request for recipes (maybe you have a good gluten-free pizza dough recipe?)
Fin
現在恭喜你自己——以上需要閱讀的很多刻两!Issues的管理對于任何一個開發(fā)者的處理中都是一個重要的工具。我想現在要做的就只有修復bug了滴某。
·