Git - 从给定分支的给定文件中获取给定范围的行

Git - get given range of lines from given file from given branch

我想知道是否已经有可能从 GIT 中的给定分支的给定文件中获取给定范围的行?我正在做一个相当大的项目,在切换到一个新分支后重新加载整个解决方案会持续几秒钟,但有时我需要从例如掌握。不转master可以吗?

可以使用cat-file打印内容:

git cat-file blob feature/my-feature:./README

然后传递给例如sed得到行范围:

git cat-file ... | sed -n '10,20p'

从特定版本的特定文件中获取一组特定的行并不是那么容易,但是非常很容易获取整个 文件:

$ git show rev:path

将其打印到标准输出(然后您可以根据需要重定向或过滤)。 path 参数相对于树的顶层,无论您在工作树中的什么位置,除非(如 )您在前面使用 ./。例如,要查看文件 dir/README:

的第 3 个版本
$ git show HEAD~3:dir/README

请注意,git show 会绕过任何污迹过滤器(与其低级对应 git cat-file 类似)。