0

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

4

2 回答 2

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>文件的完整内容。

于 2013-10-04T14:59:09.233 回答
0

获取特定文件的版本列表

git log --relative <<file_path>>

获取文件的内容

git show <<commit_hash>>:<<file_path>>
于 2013-10-04T15:24:08.397 回答