git diff是否有每次仅查看单个变更、依次查看所有变更的方法?
Git 逐变更查看实现方案
git diff 本身没有内置参数直接限定每次仅展示一个变更块,但可以通过以下两种 Git 内置能力实现你要的逐个查看、手动切换的效果:
- 方法一:使用
git add -p交互补丁模式
该命令会自动把工作区的所有变更拆分为独立的 hunk(变更块),每次仅展示一个变更块,你可以通过快捷键控制浏览逻辑:浏览常用快捷键:
n:跳过当前变更块,直接展示下一个变更块s:如果当前变更块可拆分,会将其拆分为更小的独立变更块q:直接退出浏览
如果你仅需要浏览不需要暂存变更,全程按n即可逐个遍历完全部6个独立变更。 - 方法二:git diff 配合分页器快捷键跳转
Git 默认使用 less 作为 diff 输出的分页器,你执行普通git diff后,在输出界面可以通过快捷键逐块跳转:跳转快捷键:
]c:跳转到下一个变更块[c:跳转到上一个变更块
这种方式无需进入交互暂存模式,直接在 diff 输出界面就可以实现逐个查看变更的需求。
内容的提问来源于stack exchange,提问作者mfaani
相关产品推荐
相关产品推荐

