目前的工作流中,是使用branch来管理不同的功能点开发的,那么我们怎样能比较不同branch的不同呢?
在更新代码量不大的情况下使用 git diff branch1 branch2 , 就可以了;但这个方法也有一些缺点:
- 在更新代码很多的时候,不能看到代码改动的整体情况;
- 因为只能显示不同点的上下几行,不够直观,不方便理解;
- 有遇到有的部分更改没显示的情况;
可针对性地配合以下方式:
- git diff —stat branch1 branch2 统计有哪些文件被改动,有多少行被改动
- git diff —shortstat branch1 branch2 只显示 —stat 中最后的行数修改添加移除统计。
- git diff —dirstat branch1 branch2 以百分比的方式统计文件夹的改动情况
- 使用 vimdiff 查看代码变更,具体操作如下:
使用 vimdiff 来审查代码:
确认模式: git difftool -t vimdiff +对比两分支
静默模式: git difftool -t vimdiff -y +对比两分支
进入 vimdiff 后,切换窗口:
窗口焦点切换,即切换当前窗口
CTRL-w h 跳转到左边的窗口
CTRL-w j 跳转到下面的窗口
CTRL-w CTRL-w 跳转到另一个窗口,同CTRL-w w
同时退出两个 vi 窗口:
:qa (当前文件审核通过,)同时退出两个 vi 窗口(,进入下一个文件审核)
代码审核中,滚动:
jkhl 基本的上下左右
CTRL-U 向上滚动半屏
CTRL-D 向下移动半屏
CTRL-F 向下滚动一整屏(forward)
CTRL-B 向上滚动一整屏(backward)
32j 向下跳32行
CTRL-G 显示当前所在文件中的位置(例如:"usr_03.txt" line 233 of 650 --35%-- col 45-52)
:set number 显示行号
:set nonumber 不显示行号
gg 回到页首
]c 跳转到下一个差异点
[c 跳转到上一个差异点
zo 临时展开被折叠的相同的文本行
zc 重新折叠相同的文本行
编辑
u 撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作
其他设置:
:set noscrollbind 关闭两侧文件的对齐(滚动不同步)
可参考:【技巧:Vimdiff 使用】 https://www.ibm.com/developerworks/cn/linux/l-vimdiff/
使用 git 做 code review 比较给力的模式应该参看闲扯code review这篇博文,注意这目前只是模型;
交流区