【发布时间】:2016-02-24 12:20:27
【问题描述】:
我想用 GitPython 从指定的提交中复制文件。现在我到这里为止:
import git
git = git.Git(REPO_PATH)
git.checkout(COMMIT_HEX_SHA)
fo = open(REPO_PATH + "/foo.txt", "r")
str = fo.read(10);
fo.close()
它有效。但是checkout 更改了HEAD 并更改了文件。是否可以在没有checkout的情况下从指定的提交中复制文件或读取文件?
【问题讨论】:
-
应该可以使用从任何提交中获取 blob 并从中读取,例如
git.Repo().commit(COMMIT_HEX_SHA).tree['subdir/somefile.ext'].data_stream.