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



我想知道是否已经可以从 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参数是相对于树的顶层的,无论您在工作树中的位置如何,除非(如 Zbynek Vyskovsky - kvr000 的答案)您在前面使用./。 例如,要查看文件 dir/README 的第 3 个返回版本:

$ git show HEAD~3:dir/README

请注意,git show会绕过任何污迹过滤器(更像它的低级对应物,git cat-file )。

最新更新