如何使用git获取旧版本的文件?

时间:2013-10-04 14:52:20

标签: git

有没有办法,使用git API,以编程方式获取特定文件的版本列表,然后获取特定文件的内容?

2 个答案:

答案 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>>