【问题标题】:GitPython equivalent to git diff HEADGitPython 相当于 git diff HEAD
【发布时间】:2020-05-17 01:29:03
【问题描述】:

我有:

  • 5 个已修改但未暂存的文件
  • 2 个已修改和暂存的文件
  • 因此修改了 7 个文件。

我知道以下 GitPython 等效于 git 命令:

  • repo.index.diff(None) 给出与 git diff 相同的结果 - 5 个已修改但未暂存的文件
  • repo.index.diff('HEAD') 出人意料地给出了与 git diff --staged 相同的结果 - 2 个修改和暂存的文件

所以我的问题是,什么是 GitPython 等价于 git diff HEAD

附:我可以合并 repo.index.diff(None)repo.index.diff('HEAD') 的结果以获得所需的输出,但它看起来很愚蠢......

【问题讨论】:

  • Git 等价物当然是运行git diff HEAD。实际上,也没有通用的 Python 答案,因为您正在寻找 GitPython 库中内置的东西。所以这里唯一合适的标签是gitpython...

标签: python git gitpython


【解决方案1】:

以下内容对我有用:

repo = git.Repo('path/to/my/repo')
print(repo.git.diff(repo.commit()))

这显示了分阶段和非分阶段修改的差异。

【讨论】:

    【解决方案2】:

    以下使用GitPython对我有用。

    repo = git.Repo(".")
    output = repo.index.diff("HEAD")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-22
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多