GitPython - 无法获得回购索引?

时间:2014-01-20 02:29:22

标签: python git gitpython

如何使用GitPython获取回购的索引?

import git

repo = git.Repo.init('/path/to/repos/')
... add some files ...
... commit ...
index = repo.index()

抛出错误:'Repo'对象没有属性'index'

WTH?从阅读特里尔教程一遍又一遍地快速地看到我的眼睛是血腥的。 有线索吗?

1 个答案:

答案 0 :(得分:1)

这里有两个问题。首先,index不是方法,而是IndexFile对象。其次,我想知道你是不是使用了当前版本的GitPython。

如果我从:

开始
$ virtualenv stacktest
$ ./stacktext/bin/pip install GitPython
$ ./stackext/bin/python
Python 2.7.5 (default, Nov 12 2013, 16:18:42) 
[GCC 4.8.2 20131017 (Red Hat 4.8.2-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import git
>>> repo = git.Repo.init('/home/username/projects/myproject')
>>> repo.index
<git.index.base.IndexFile object at 0x1213a48>
>>> repo.index.entries
{('README.md', 0): (100644, 515cbd1e78aa13ec91941eaa63ecec89d5e4b947, 0, README.md), ('setup.py', 0): (100644, 7497e295447af70a6865b7313bfb2f86ba6577d6, 0, setup.py)}

另一种可能性是代码中的某些内容掩盖了该属性。如果您可以发布其他人可以运行的实际 runnable 代码示例,这将有助于缩小问题范围。