有没有办法,使用git API,以编程方式获取特定文件的版本列表,然后获取特定文件的内容?
答案 0 :(得分:3)
不确定。您可以从rev-list
开始,以获得相关的时间顺序(即最新的第一个)哈希列表,其中有问题的文件被修改:
git rev-list HEAD <filename>
然后,您可以使用git show <hash>:<filepath>
来显示文件的内容。
我不确定您是否要查看每个版本的内容,但您可以使用简单的for
循环遍历每个
for hash in `git rev-list HEAD dummy_repo/file.c`
do
git show $hash:dummy_repo/file.c
done
有关每个提交更改的更多反馈,请尝试git whatchanged <filename>
(您将能够看到哈希,修改类型以及提交消息)。
尝试git whatchanged -p <filename>
以查看文件中实际引入的提交有哪些更改。当您有自己喜欢的哈希值时,可以再次使用git show <hash>:<filepath>
获取文件的完整内容。
答案 1 :(得分:0)
获取特定文件的版本列表
git log --relative <<file_path>>
获取文件的内容
git show <<commit_hash>>:<<file_path>>