有没有办法使用 git API 以编程方式获取特定文件的版本列表,然后获取特定文件的内容?
问问题
90 次
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 回答