gitpython 和 git 差异

新手上路,请多包涵

我希望只获取从 git repo 更改的文件的差异。现在,我正在使用 gitpython 来实际获取提交对象和 git 更改的文件,但我只想对文件更改的部分进行依赖性分析。有没有办法从 git python 获取 git diff?还是我必须通过逐行阅读来比较每个文件?

原文由 user1816561 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 647
1 个回答

如果你想访问 diff 的内容,试试这个:

 repo = git.Repo(repo_root.as_posix())
commit_dev = repo.commit("dev")
commit_origin_dev = repo.commit("origin/dev")
diff_index = commit_origin_dev.diff(commit_dev)

for diff_item in diff_index.iter_change_type('M'):
    print("A blob:\n{}".format(diff_item.a_blob.data_stream.read().decode('utf-8')))
    print("B blob:\n{}".format(diff_item.b_blob.data_stream.read().decode('utf-8')))

这将打印每个文件的内容。

原文由 D. A. 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏