<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Project Management on Leanku 的博客</title><link>https://www.leanku.com/tags/project-management/</link><description>Recent content in Project Management on Leanku 的博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sun, 02 Apr 2023 21:46:01 +0800</lastBuildDate><atom:link href="https://www.leanku.com/tags/project-management/index.xml" rel="self" type="application/rss+xml"/><item><title>Git提交日志规范指南</title><link>https://www.leanku.com/post/projectmanagement/git%E6%8F%90%E4%BA%A4%E6%97%A5%E5%BF%97%E8%A7%84%E8%8C%83%E6%8C%87%E5%8D%97/</link><pubDate>Sun, 02 Apr 2023 21:46:01 +0800</pubDate><guid>https://www.leanku.com/post/projectmanagement/git%E6%8F%90%E4%BA%A4%E6%97%A5%E5%BF%97%E8%A7%84%E8%8C%83%E6%8C%87%E5%8D%97/</guid><description>&lt;p&gt;在软件开发流程中，Git已经成为版本控制的事实标准。每次提交代码都需要填写commit message，否则不允许提交。然而，在日常开发中，我们经常会看到各种各样模糊不清的提交信息，如“fix bug”、“更新代码”、“修改问题”等。这些不规范的commit message充斥在git history中，导致后续维护人员无法快速定位问题，有时甚至连提交者自己都不记得某次提交的目的。因此，我们需要一套&lt;strong&gt;统一的规范来管理和约束commit message&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;h2 id="规范概述"&gt;规范概述&lt;/h2&gt;&#10;&lt;p&gt;目前业界最知名的规范是&lt;strong&gt;Angular团队的commit message规范&lt;/strong&gt;，它结构清晰、易于实施，已被广泛应用于开源项目和商业项目中。同时，许多IDE（如IntelliJ IDEA）也提供了相应的插件（如Git Commit Template）来辅助开发者遵循这一规范。&lt;/p&gt;&#10;&lt;p&gt;本文将以Angular规范为基础，详细介绍一套通用的Git commit message规范，并提供具体的操作示例。&lt;/p&gt;&#10;&lt;h2 id="commit-message整体结构"&gt;Commit Message整体结构&lt;/h2&gt;&#10;&lt;p&gt;规范的commit message包含三个部分：&lt;strong&gt;Header&lt;/strong&gt;、&lt;strong&gt;Body&lt;/strong&gt;和&lt;strong&gt;Footer&lt;/strong&gt;。其格式如下：&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;header&amp;gt;&#10;&amp;lt;BLANK LINE&amp;gt;&#10;&amp;lt;body&amp;gt;&#10;&amp;lt;BLANK LINE&amp;gt;&#10;&amp;lt;footer&amp;gt;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;重要说明&lt;/strong&gt;：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Header是必需的&lt;/strong&gt;，包含type、scope和summary三个子元素&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Body是必需的&lt;/strong&gt;，用于详细描述提交内容&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Footer是可选的&lt;/strong&gt;，用于记录不兼容变更或关闭issue&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;关键规则&lt;/strong&gt;：Header和Body之间必须有一个空行分隔，这是许多Git工具正确解析提交信息的前提。&lt;/p&gt;&#10;&lt;h3 id="整体结构示例"&gt;整体结构示例&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;feat(用户认证): 增加短信验证码登录功能&#10;&#10;为了提升用户登录体验，增加了通过手机号接收验证码进行登录的方式。&#10;- 集成阿里云短信服务&#10;- 新增验证码生成与校验逻辑&#10;- 更新登录页面UI&#10;&#10;Closes #245&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="header详解"&gt;Header详解&lt;/h2&gt;&#10;&lt;p&gt;Header是commit message的“标题”，格式为：&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;type&amp;gt;(&amp;lt;scope&amp;gt;): &amp;lt;summary&amp;gt;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;其中，&lt;strong&gt;type和summary为必填项，scope为可选项&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;h3 id="type提交类别"&gt;Type：提交类别&lt;/h3&gt;&#10;&lt;p&gt;Type用于说明本次提交的类别，必须使用以下标准化标识之一：&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Type&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;说明&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;使用场景&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;feat&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;新功能&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;新增用户可见的功能特性&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;fix&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;修复bug&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;修复线上或测试环境发现的缺陷&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;docs&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;文档更新&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;仅修改文档，不涉及代码变更&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;style&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;代码格式&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;不影响代码运行的格式调整（空格、缩进、分号等）&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;refactor&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;代码重构&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;既不是新增功能，也不是修复bug的代码结构调整&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;perf&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;性能优化&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;提升系统性能或用户体验的代码变更&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;test&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;测试相关&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;新增或修改测试用例&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;chore&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;构建/工具变动&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;构建流程、依赖管理、辅助工具等变更&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;revert&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;回滚提交&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;撤销之前的某次提交&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;&lt;strong&gt;Type使用示例&lt;/strong&gt;：&lt;/p&gt;</description></item><item><title>项目规范指南</title><link>https://www.leanku.com/post/projectmanagement/%E9%A1%B9%E7%9B%AE%E8%A7%84%E8%8C%83%E6%8C%87%E5%8D%97/</link><pubDate>Sat, 01 Apr 2023 21:46:01 +0800</pubDate><guid>https://www.leanku.com/post/projectmanagement/%E9%A1%B9%E7%9B%AE%E8%A7%84%E8%8C%83%E6%8C%87%E5%8D%97/</guid><description>&lt;h1 id="项目规范指南"&gt;项目规范指南&lt;/h1&gt;&#10;&lt;p&gt;本规范适用于团队/开源项目的版本管理，目标是做到：规范化、可追踪、可溯源。&lt;/p&gt;&#10;&lt;h2 id="1-版本管理-versioning"&gt;1. 版本管理 (Versioning)&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;遵循 语义化版本规范 (Semantic Versioning, SemVer 2.0.0)&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;MAJOR.MINOR.PATCH&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;MAJOR&lt;/strong&gt;：主版本号，不兼容的 API 改动&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;MINOR&lt;/strong&gt;：次版本号，新增功能（向下兼容）&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;PATCH&lt;/strong&gt;：修订号，修复 bug（向下兼容）&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面，作为延伸。&lt;/li&gt;&#10;&lt;li&gt;预发布版本：&lt;code&gt;1.0.0-alpha.1&lt;/code&gt;、&lt;code&gt;2.0.0-rc.1&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;参考语义化版本规范&lt;/strong&gt;：&lt;a href="https://semver.org/lang/zh-CN/"&gt;https://semver.org/lang/zh-CN/&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="2-license-mit"&gt;2. LICENSE (MIT)&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：MIT，明确版权&lt;/p&gt;&#10;&lt;h3 id="规范"&gt;规范&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;项目必须包含 &lt;code&gt;LICENSE&lt;/code&gt; 文件，放置于项目根目录。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;推荐使用 &lt;strong&gt;MIT License&lt;/strong&gt;（宽松、常用，几乎所有开源项目可接受）。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;文件名统一：&lt;code&gt;LICENSE&lt;/code&gt;（不要写成 &lt;code&gt;LICENSE.txt&lt;/code&gt; 或 &lt;code&gt;license.md&lt;/code&gt;）。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;在 &lt;code&gt;README.md&lt;/code&gt; 中需明确说明 License 类型。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="示例"&gt;示例&lt;/h3&gt;&#10;&lt;p&gt;&lt;code&gt;LICENSE&lt;/code&gt; 文件（MIT）：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;MIT License&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;Copyright (c) 2025 Your Name&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;Permission is hereby granted, free of charge, to any person obtaining a copy&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;6&lt;/span&gt;&lt;span class="cl"&gt;of this software and associated documentation files (the &amp;#34;Software&amp;#34;), to deal&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;7&lt;/span&gt;&lt;span class="cl"&gt;...&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="3-readmemd"&gt;3. README.md&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;作用&lt;/strong&gt;：项目介绍 + 使用 + License&lt;/p&gt;</description></item></channel></rss>