我正在使用 GitPython 查找特定时间段内更改的文件(例如现在和 1 周前):

 repo = Repo(self.repo_directory)
 for item in repo.head.commit.diff('develop@{1 weeks ago}'):
     print ("smth")

但是即使将周数更改为不同的数字也没有任何 react ,这意味着在该时间段内没有检测到差异。如果我将 'develop@{1 weeks ago}' 更改为 'HEAD@{1 weeks ago}',那么更改的数量很大,这在一周内是不正确的。任何帮助表示赞赏。

最佳答案

develop@{1 weeks ago} 将使用 reflog



这意味着您的本地 Git 存储库一周前可能没有在本地记录对 develop 的任何操作,而它却记录了“HEAD”发生的任何事情。

如果开发被远程更改,然后其历史记录在本地导入,develop@{1 weeks ago} 可能不会产生任何结果(因为您的本地 reflog 不会引用它)。

只有 git log --since/--until 可以在任何日期运行(不仅仅是记录在 reflog 中的那些,它们仅限于本地操作,并且默认为 90 天)

但我不知道 GitPython 是否实现了这一点。
它的 git.refs.log 模块更多地基于 reflogs 条目,这对您的情况没有帮助。

关于python - GitPython中当前日期和前一段时间之间的git diff,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59385544/

10-13 05:24