像这里提到的方法获取Git中两个标签之间的新提交列表?给我diff文件列表。
但是,我有一个局限性,例如无法每次都签出一个标签,因为我需要在不同标签之间提供超过1000个请求/秒的请求差异文件。有什么方法可以实现这一目标?
例如,我有3个标签:
现在,假设one.txt
所有标签中的文件均已更改,并且文件头位于最新标签(1.2)上。现在,当我做
git diff 1.0 1.1 --stat
它返回了我的文件名,one.txt
所以现在我知道one.txt
已更改,可以抓取该文件。但是,要获得one.txt
标签1.1,我需要先在1.1处签出,否则我将获得最新one.txt
,因此在这里,我需要避免该签出并获得与one.txt
1.1相同的结果。
请提出任何解决方案?
git checkout
使用git checkout
了修订版本像是一个分支,标签,或提交沙,用文件路径一起,将签出该文件的修订工作时到您的工作副本:
git checkout <tag> -- <filepath>
请注意,这只会修改该特定文件的版本。您的工作副本的其余部分将不受影响。
从官方Linux Kernel文档中获得git log
(摘要):
git checkout [-p|--patch] [<tree-ish>] [--] <pathspec>…
当
<paths>
或--patch
给出,git checkout
并没有转换分支。它从索引文件或已命名的<tree-ish>
(最常见的是提交)更新工作树中的已命名路径。该<tree-ish>
参数可用于指定特定的树形(即,commit,tag或tree)来更新索引给定路径,然后再更新工作树。
git show
您还可以使用git show
并将结果输出到文件来检索文件的版本:
git show <tag>:<filepath> > <outputPath>
官方Linux内核文档:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句