Git 是软件开发过程的记录工具,为了更加准确的定位每个问题、每个功能修改,就需要在每完成一部分可以称得上是“一项”的工作时,就 commit 一次。哪怕只是修改了一两行,只要产生了必要的功能改变,就有价值记录。当采用代码审核机制或者需要用邮件提交补丁时,较小的提交能够更有效、更容易、更准确的被检查和审核。
- 控制好提交粒度。每次的提交都必需具有独立性的原子性,建议是:
- 以一个功能点或 bug fix 为单位;
- 无直接关联的文件不能在同一次提交;
- 如果一个文件修改过多次,添加了很多功能以后,才记起来提交,要使用
$git add -p
对这个文件进行分行提交。对于这个操作建议使用图像化工具,如 GitX,SourceThree 等
- 认真对待提交备注,多花一分钟回想本次提交的代码所含的意义,清晰描述下来
- 编译、运行及测试没通过的代码不允许提交到服务器
- 第一行写 Summary,首字母大写,空一行再写详细的描述(建议每行不超过72个字符,这样做可以带来很多好处 git shortlog, GitHub, git format-patch, git send-email...)
- 使用现在时 (Fix Bug) 而非过去时 (Fixed Bug)、主因是跟 git merge 或 git revert 产生的 log 一致
Fix bug where user can't signup
Users were unable to register if they hadn't visited the plans and pricing page because we expected that tracking information to exist for the logs we create after a user signs up. I fixed this by adding a check to the logger to ensure that if that information was not available we weren't trying to write it.
如果想修改提交过的 Message,可以使用下面的命令:
$git commit --amend
$git revert
$git rebase
- 使用 fix, add, change 而不是 fixed, added, changed
- 永远别忘了第2行是空行
- 用 Line break 来分割提交信息,让它在某些软件里面更容易读
- 请将每次提交限定于完成一次逻辑功能。并且可能的话,适当地分解为多次小更新,以便每次小型提交都更易于理解。