python - GitPython 中当前日期和前一段时间之间的 git diff

标签 python git git-diff gitpython

我正在使用 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/

相关文章:

python - 浏览器未使用 python 脚本通过 Jenkins 启动

git - 如何编辑 git merge 的提交消息

git - 如何测试git pull的结果?

Git:如何区分不同分支中的两个不同文件?

git - 如何在 git diff 命令中显示相对路径?

python - 如何访问不同维度的多维 NumPy 数组的特定行?

python - 如何找到值按行和列排序的最大子矩阵?

远程分支中特定文件行的下一次更改的 Git 日志

python - 如何使用 seaborn displot 将直方图条围绕刻度线居中?堆叠杆是必不可少的

git - 使用过 git 后,您对 git 的优缺点是什么?