comment是版本管理中非常重要的内容,尤其是在经年累月的大型项目中,铁打的项目,流水的SE,哪怕只言片语的留下,对后来者问题的对应很多时候都能起到重要作用,这篇文章用来讲解git中如何进行comment的管理.
为什么需要comment
为什么需要comment,理由有很多:规范,可读,可维护,bug分析等等。很多人可能在新入一个大型项目时候进行原因调查时候都有很多障碍,尤其是业务不清晰,然后再加上经年累月的bug修改,导致目前的代码已经面目全非的可能性很多,如果有点comment,那就是绝望之中的一根稻草,自然十分重要。
以前曾经碰到过一个很有趣的case,逻辑判断的==被写成了=,这样就变成恒真的一个判断了,跟删除无异,本来准备修改,无意之中发现此行是刻意被修改的,而且提交了一行comment,内容大概是"bug fix",这么难解的comment虽然让人望而却步,但是总提供了一点信息:这是不可以随便修改的,要么把此行删除,要么别动它。
comment使用实践
好记性不如烂笔头,大型项目中comment最好要跟redmine/trac/bugzero等工具结合起来,不同的项目一般都有自己的规范,比如:
项目 | 说明 |
---|---|
原则1 | 提供bug追踪工具中此次修改的详细信息的Ticket号,以确认更详细信息 |
原则2 | 同时将简单将修改原因的重点信息列出,便于确认 |
原则3 | 尽量1行之内,便于整体确认 |
以下将通过实际的例子操作来展示如何进行comment的管理。
当前状态
使用上篇文章创建的分支,因为其中已经有若干commit附带若干comment
[root@ku8-1 demoprj]# git branch
* fea-restapi
master
[root@ku8-1 demoprj]# git log --oneline
6e990e6 create another rest api list
57c2f6a create rest api list
bc390f0 Another new files in Master
c2ce58b New file added in Master
23c9620 Merge branch ‘develop‘
4b76d48 for branch
70dfd04 initial
[root@ku8-1 demoprj]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
comment管理
其实这仍然是rebase命令的延续,使用rebase -i HEAD~n就可以将最近修改的comment选中进行管理。
操作说明
目前这方面的操作仍然不是很人性化,进入到编辑器之后可以引发的执行子命令有如下六条
项目 | 说明 |
---|---|
pick | 用于显示选中,不做任何修改; |
reword | 仅仅用于修改提交注释信息; |
edit | 修改提交的文件,做增补提交; |
squash | 将该条提交合并到上一条提交,提交注释也一并合并; |
fixup | 将该条提交合并到上一条提交,废弃该条提交的注释; |
exec | 执行一条命令 |
reword操作
reword操作用于修改以前不合适的注视太合适不过了,比如我们将"create another rest api list"的注释修改为:”T10100: create another rest api list: person/list”, 将bug追踪工具的Ticket号与之进行结合,并能从comment中看出大体信息。
修改对象行前的命令
将欲修改的所在行的pick改为reword,表明要对此行进行comment的修正动作
保存退出后进入另外一个编辑界面,在此界面中可以真正的修改想要修改的注释:
保存退出
[[email protected]1 demoprj]# git rebase -i HEAD~2
[detached HEAD 4ffee47] T10100:create another rest api list: person/list
1 file changed, 1 insertion(+)
create mode 100644 restapi-list-2
Successfully rebased and updated refs/heads/fea-restapi.
[[email protected]1 demoprj]#
- 1
- 2
- 3
- 4
- 5
- 6
push操作
[root@ku8-1 demoprj]# git push origin fea-restapi -f
Counting objects: 7, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 641 bytes | 0 bytes/s, done.
Total 6 (delta 1), reused 0 (delta 0)
remote:
remote: Create merge request for fea-restapi:
remote: http://e5091e18d568/root/demoprj/merge_requests/new?merge_request%5Bsource_branch%5D=fea-restapi
remote:
To git@172.17.0.2:root/demoprj.git
+ 6e990e6...4ffee47 fea-restapi -> fea-restapi (forced update)
[root@ku8-1 demoprj]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
结果确认
在gitlab上可以看到comment已然改变
总结
这篇文章介绍了如何在git中进行comment的管理,comment对于项目也恰似那不可或缺的一块小小的拼图,在软件开发日益进步的今天,细节的完善和掌控已经是越来越重要。
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
原文地址:https://www.cnblogs.com/firsttry/p/10294998.html