我們使用 git 作為 VCS、使用 Github 作為 VCS host。
- 每一個 commit 都要有意義。
- commit message 需要能表現該 commit 的意義
- commit 之間保持「小步前進」的步調
以 FlowTraining 這個 repo 為例,假設 reviewer 為 MontyPan,你(committer)是 PG:
DontCareAbout/FlowTraining -----------------------------------> PG/FlowTraining
^ |
| |
+------------------ MontyPan/FlowTraining <-----------------+
PG 的 repo 是由 DontCareAbout/FlowTraining fork 出來(等同於 Github 幫你作 git clone),
task 完成後發 pull request(簡稱 PR)給 reviewer,
reviewer 如果 accept,就會整合回 DontCareAbout/FlowTraining。
沿用前述的名詞 / 名稱,假設現在要處理的 task / issue 為 WtfTask:
- 開一個新的 branch,名稱為
WtfTask - 在
WtfTask上頭作業 - 完成後發 PR 給 reviewer(
MontyPan/FlowTraining), 如果 reviewer 沒有特別指定,target branch 就是master。 - reviewer 可能會有三個動作:
- merge pull request:表示 reviewer accept,這個 task 順利結束。
- comment(包含 line comment):表示 reviewer 認為仍然需要修改、會將修改原因與內容寫在 comment 中。
修改 / commit 完之後,留下一個 comment 通知 reviewer 再次 review,
也可按下畫面右側「Reviewers」欄的
Re-request review圖示通知 reviewer。 - close pull request:表示該 pull request 有重大錯誤,要另外重發 pull request。
另外有幾點注意事項:
- 申請 review(無論發 pull request、或再次要求 review)後到 review 回應 comment 之前,請不要繼續在該 branch 上 commit。
- 如果該 pull request 在 accept 之前發生 conflict (如果發 pull request 的時候還沒有、是 reviewer 後續操作所產生, reviewer 有責任寫 comment 通知 committer), 則此次 pull request 不會被 accept, 請解決 conflict 之後寫 comment 通知 reviewer。 解決 conflict 是 committer 的責任,不是 reviewer 的責任。
- 為了防止 dummy 的 merge commit,正常情況下作
git pull(或是其他等意指令)時, 請加上--rebase/-r參數。
-
UTF-8
-
撰寫中文時請一律使用全形標點符號
-
專有名詞(例如 Java 中的
class、constructor)一律使用原文 -
中文與英文數字之間用一個半形空白符號隔開。例如:
我是負責 review 的 reviewer-
中文標點符號前後的英文數字可省略空白符號。例如:
我是 reviewer,reviewer 負責 review。
-
-
使用 Markdown 語法、搭配 github 延伸語法(ref.1、ref.2), 並符合後述的 Markdown Style
- 若有語法解讀不同的問題,以 GitHub 上能正常顯示為準
-
縮排用 tab
-
header
- h1, h2 用 Setext-stye(
====與----),要跟 header 一樣長,但不得少於四個。 - 除了文件第一行之外,其餘 header 的上頭都要空兩行
- 例外:如果連續兩個 header,則 header 之間只要空一行
- 例外:作為 blockquote 的 title
- header 下頭要空一行
- 例外:作為 blockquote 的 title
- h1, h2 用 Setext-stye(
-
code block
- 上頭空一行、下頭空兩行
-
blockquote
-
上頭空一行、下頭空兩行
-
行首全部都要加上
> -
用 blockquote 作諸如「備註」、「注意」的文字區塊, 則用第六級的 header(稱之為 title),例如:
> ###### title ###### > 內容內容內容......
-
-
list
- list 區段結束空兩行
- list item 的內容超過一行,第二行以後需要縮排
-
horizontal
-
上下都要空兩行
-
使用 70 個底線
______________________________________________________________________
-
-
link
- 建議使用 reference 方式
- reference link 段落上下都要空兩行
-
phrase emphasis 用
*跟**而不用_跟__