2

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

4

2 回答 2

2

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

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

然后传递给例如sed以获取行范围:

git cat-file ... | sed -n '10,20p'
于 2016-01-29T08:12:26.893 回答
2

从特定修订版中的特定文件中获取特定的一组行并不容易,但获取整个文件非常容易:

$ git show rev:path

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

$ git show HEAD~3:dir/README

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

于 2016-01-29T08:12:39.430 回答