如何让Git仅展示feature/fix分支独有而develop缺失的代码行
只查看feature/fix分支独有的代码行
刚好遇到过类似的场景,这几个方法应该能帮你精准拿到想要的内容——完全忽略develop分支后来新增的功能,只聚焦feature/fix里那些develop还没有的代码行:
核心命令:聚焦分支独有变更
首先用Git的三点diff语法,它会自动过滤掉develop后续合并的所有内容,只展示feature/fix从你和develop分叉之后的独有修改:
git diff develop...feature/fix
原理很简单:Git会先找到feature/fix和develop的共同祖先提交,然后只对比feature/fix相对于这个祖先的所有变更——相当于直接“隔离”了develop后来新增的所有代码,只看你的分支贡献的内容。
只提取新增的代码行
如果diff输出里混着删除行(-开头),而你只想看feature/fix新增的代码(+开头),可以用grep过滤掉无关内容:
git diff develop...feature/fix | grep '^+' | grep -v '^+++'
grep '^+':只保留以+开头的新增行grep -v '^+++':排除掉显示文件名的行(比如+++ b/src/file.js)
带上下文查看独有代码
要是想看到新增代码的上下文(方便理解代码逻辑),可以加上上下文行数参数,再结合过滤:
git diff -U3 develop...feature/fix | grep -A3 -B3 '^+' | grep -v '^+++'
这里-U3表示默认显示3行上下文,-A3和-B3分别保留匹配行的后3行和前3行,你可以根据需求调整数字。
小提醒
- 先确保本地develop是最新的:运行
git checkout develop && git pull,避免因为本地分支过时导致结果不准。 - 如果你的feature/fix已经有部分代码合并到develop,三点diff会自动忽略那些已合并的内容,只显示剩余的独有变更。
内容的提问来源于stack exchange,提问作者mridt
相关产品推荐
相关产品推荐

