分支
git工作流使用多個分支來完成版本管理工作疫鹊。這些分支包括master分支杉武、develop分支、feature分支褪子、release分支和hotfix分支量淌。
master分支
develop分支
develop分支維護正在開發(fā)中的代碼。develop分支從master分支創(chuàng)建嫌褪。當開發(fā)新功能時呀枢,開發(fā)者從develop分支創(chuàng)建feature分支進行開發(fā)。開發(fā)工作完成后渔扎,再合并到develop分支硫狞,之后刪除對應的feature分支。在修復缺陷時晃痴,同樣從develop分支創(chuàng)建fix分支残吩,處理流程同feature分支一樣。在發(fā)布過程中(建立release分支后)倘核,只有修復缺陷的feature分支和hotfix分支可以合并到develop分支泣侮。
feature分支
feature分支是為實現(xiàn)指定特性,或修復特定缺陷而建立的分支紧唱。feature分支從develop分支創(chuàng)建活尊,在完成開發(fā)工作后,合并入develop分支漏益,然刪除該feature分支蛹锰。feature分支應當命名為issue-XXX,其中XXX是特性對應的issue編號绰疤。
release分支
release分支負責維護即將發(fā)布的代碼铜犬。release分支從develop分支創(chuàng)建,進行缺陷修復轻庆、生成文檔和其他發(fā)布相關的任務癣猾。在發(fā)布過程中,如果有hotfix分支余爆,或者修復缺陷的feature分支合并到develop分支纷宇,應當執(zhí)行develop分支同release分支的合并。當發(fā)布完成后蛾方,將release分支合并到master分支像捶,并分配一個版本號作為標簽上陕。然后刪除該release分支。release分支應當以release-XXX命名作岖,其中XXX是版本號唆垃。
hotfix分支
hotfix分支用于進行缺陷緊急修復。hotfix分支從master分支創(chuàng)建痘儡,修復完成后辕万,合并入develop分支和master分支,并為master分支建立新標簽沉删。
提交信息
提交信息格式如下
<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>
其中渐尿,type可以是如下類型
| 類型 | 說明 |
| feat | 新特性 |
| fix | 修復 |
| docs | 文檔 |
| style | 代碼格式 |
| refactor | 重構 |
| test | 測試代碼 |
| chore | 輔助工具 |
scope是影響的范圍,比如數(shù)據(jù)層矾瑰、控制層砖茸、視圖層等,因項目而異殴穴。subject是提交的主題凉夯,其限制如下
- 使用英文編寫。
- 不超過50字符采幌。
- 首字母小寫劲够。
- 以動詞開頭,使用第一人稱現(xiàn)在時休傍。
- 結尾不加句號(.)征绎。
body是對提交的詳細描述,可以有多行磨取。body的要求如下
- 使用英文編寫人柿。
- 不超過72字符。
- 使用第一人稱現(xiàn)在時忙厌。
- 必須說明變更的目的和內(nèi)容凫岖。
下面是一個body示例
More detailed explanatory text, if necessary. Wrap it to
about 72 characters or so.
Further paragraphs come after blank lines.
- Bullet points are okay, too
- Use a hanging indent
footer是可選的部分,僅當提交不兼容變更和關閉issue時使用逢净。提交不兼容變更時隘截,footer當以BREAKING CHANGE開頭,并描述變更影響汹胃,如
BREAKING CHANGE: isolate scope bindings definition has changed.
To migrate the code follow the example below:
Before:
scope: {
myAttr: 'attribute',
}
After:
scope: {
myAttr: '@',
}
The removed `inject` wasn't generaly usefull for directives so there should be no code using it.
在關閉issue時,foot要寫明issue編號东臀,如
Closes #1234
或
Closes #12, #34, #56
Revert
如果當前提交目的是撤銷以往的提交着饥,提交header必須以“reert:“開頭,接著是被撤銷的提交的header惰赋。body為”This reverts commit <hast>.“宰掉,其中hash是被撤銷提交的散列碼呵哨。示例如下
revert: feat(pencil): add 'graphiteWidth' option
This reverts commit 667ecc1654a317a13331b17617d973392f415f02.
參考資料: