我正在使用 GitPython 查找一段时间内更改的文件(例如现在和 1 周前):
repo = Repo(self.repo_directory)
for item in repo.head.commit.diff('develop@{1 weeks ago}'):
print ("smth")
但即使将周数更改为不同的数字也不会发生任何事情,这意味着在该时间段内没有检测到差异。如果我改变
'develop@{1 weeks ago}'
至'HEAD@{1 weeks ago}'
那么变化的数量是巨大的,这在一周内是不正确的。任何帮助表示赞赏。
最佳答案
develop@{1 weeks ago}
将使用 reflog
Reference logs, or "reflogs", record when the tips of branches and other references were updated in the local repository.
这意味着您的本地 Git 存储库可能没有在本地记录任何对
develop
的操作。一周前,它记录了“HEAD”发生的任何事情。如果 develop 被远程更改,然后在本地导入它的历史,
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/