如何在不同Git分支间仅对比单个文件的指定行?
仅对比不同分支单个文件指定行的Git命令方法
方法1:用git diff自带的-L参数(最直接)
Git的diff命令支持-L参数限定对比的行范围,刚好满足只看某一行的需求。假设你要对比file.java的第5行,命令如下:
git diff current_branch other_branch -L 5,5:file.java
如果需要对比连续多行,比如第5到第10行,只需把范围改成5,10即可:
git diff current_branch other_branch -L 5,10:file.java
方法2:提取指定行后再对比
如果你的Git版本较旧不支持-L参数,可以先分别提取两个分支里目标文件的指定行,再用diff命令对比。同样以第5行为例:
diff <(git show current_branch:file.java | sed -n '5p') <(git show other_branch:file.java | sed -n '5p')
这里git show <分支名>:<文件名>用来直接获取对应分支下文件的内容,sed -n '5p'只筛选出第5行,最后通过进程替换把两行内容传给diff做对比。
内容的提问来源于stack exchange,提问作者Alexander
相关产品推荐
相关产品推荐

