GitPython http://gitorious.org/git-python是一种从 python 与 git 交互的方式。我正在尝试访问基本的 git 命令(例如git commit -m "message"
)从此模块中,根据this http://pysync.googlecode.com/files/GitPython.pdf应通过 Git 模块访问。这是我迄今为止为使这些命令正常工作所做的尝试:
>>> import git
>>> foo = git.Git("~/git/GitPython")
>>> bar = "git commit -m 'message'"
>>> beef = git.Git.execute(foo,bar)
这会显示一个错误,指出不存在这样的文件或目录。我还尝试了以下作为 git 目录的路径:
~/git/GitPython/.git
/Users/bacon/git/gitclient/
唯一的其他选择是命令错误,所以我尝试:commit -m "message"
同样,仍然得到“没有这样的文件或目录”。
我需要做什么才能让这些 git 命令正常工作?
我还没有尝试验证它,但似乎 git.Git.execute 需要一个命令行参数列表(如果你给它一个字符串,它会查找与字符串、空格和所有内容完全匹配的可执行文件 - 这自然不会'找不到),所以我认为这样的事情会起作用:
import git
import os, os.path
g = git.Git(os.path.expanduser("~/git/GitPython"))
result = g.execute(["git", "commit", "-m", "'message'"])
其他变化:
- 我预计使用带有 ~ 的路径是行不通的,所以我使用 os.path.expanduser 将 ~ 扩展到您的主目录
- 使用instance.method(*args)而不是Class.method(instance,*args)通常是首选,所以我改变了它,尽管它仍然可以用其他方式工作
不过,可能有比手动运行提交命令更明智的方法(我只是没有注意到快速浏览源代码),所以我建议在这样做之前确保没有更高级别的方法
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)