目標linux
生成 CHANGELOG.mdgit
識別不重要的提交angularjs
在瀏覽 Git 歷史時提供更多信息github
格式化提交信息工具
恢復(Revert)測試
信息頭部fetch
- 必需<type> - 必需<scope> - <subject>文本
信息主體spa
信息尾部日誌
- 重大更改(Breaking changes) - 引用討論(Referencing issues)
可以經過腳本生成 CHANGELOG.mdcode
能讓 git bisect 過程忽略不重要的提交
在瀏覽歷史時提供更好的信息
咱們在 changeling 裏使用這三個標誌: new features, bug fixes, breaking changes.
在作一個發行版的時候,這個列表能夠經過腳原本生成,經過關聯這些相關的提交。
天然,你能夠在實際發行以前編輯這些變動日誌,可是這樣子能夠很容易的生成骨架。
列出自最近一次發行以來全部的主體(提交信息第一行)
>> git log <last tag> HEAD —pretty=format:%s
在本次發行內的新功能
>> git log <last release> HEAD —grep feature
一般有不少的Formatting changes(adding/removing spaces/empty lines, indentation), missing semicolons, comments.因此當你查找一些變動的時候,你能夠忽略這些提交 - 這些提交裏面沒有業務邏輯變動。
當二分查找的時候,你能夠忽視這些提交經過鍵入如下命令:
>> git bisect skip $(git rev-list —grep irrelevant <good place> HEAD)
這將會增長一種「context」信息
看這些信息(經過查看最近的 angularjs 的提交信息)
Fix small typo in docs widget (tutorial instructions)
Fix test for scenario.Application - should remove old iframe
docs - various doc fixes
docs - stripping extra new lines
Replaced double line break with single when text is fetched from Google
Added support for properties in documentation
全部這些信息都嘗試去代表更改的位置,可是它們沒有使用公共的規範
再看看這些信息:
fix comment stripping
fixing broken links
Bit of refactoring
Check whether links do exist and throw exception
Fix sitemap include (to work on case sensitive linux)
你能猜出這裏面到底裝了些什麼?這些信息缺少重點。
也許還有這些代碼:docs, docs-parser, compiler, scenario-runner, ...
我知道,你能夠經過查看哪些文件被改變來肯定這個提交到底作了什麼,可是這樣子太麻煩了。
當查看 git 歷史信息的時候咱們能夠看到你們都在努力保持一致,可是缺乏一個公共規範。
<type>(<scope>):<subject> <BLANK LINE> <body> <BLANK LINE> <footer>
提交信息的任意一行都不能超過100個英文字符!這個能讓信息在 github 上和 git 工具裏更容易查看。
若是提交是用於恢復一個更早的提交,這個頭部應該以「revert:」開始,接下來是被恢復提交的頭部,在主體內應該寫「This reverts commit <hash>.」,hash 的位置就是被恢復提交的 sha 值
信息頭部應該是包含改變的一條單行簡要描述,包括一個類型,一個可選的範圍和一個主題
必需的<type>
這是用於說明提交的類型,下列是7個標誌。
feat: 新功能
fix : 修補bug
docs: 文檔
style: 格式化,缺乏分號等
refactor
test: 增長缺乏的測試
chore 維護
必需的<scope>
範圍能夠是任何制定的提交更改的地方。例如 $location, $browser, $compile, $rootScope, ngHref, ngClick, ngView等等
<subject>文本
這是變動的簡單描述
以動詞開頭,使用第一人稱如今時,好比change,而不是changed或changes
第一個字母小寫
結尾不加句號
這部分是對本次提交的詳細描述,能夠分紅多行
使用第一人稱如今時,好比使用 change 而不是 changed 或者 changes。
說明代碼變動的冬季,以及和之前代碼的對比
只有兩種狀況:不兼容變更全部不兼容變更應該被列爲不兼容變更塊放在信息尾部,應該以「BREAKING CHANGE:」開始,後面是對變更的描述,以及變更的動機和遷移方法引用討論若是當前提交是針對某個討論,那麼能夠在尾部關閉這個討論Closes #234或者同時關閉多個討論Closes #123, #245, #992