GitPython是一种与python中的git交互的方式.我正在尝试git commit -m "message"从这个模块访问基本的git命令(例如),根据这个命令应该通过Git模块访问.这是我到目前为止尝试使这些命令工作的原因:
>>> import git
>>> foo = git.Git("~/git/GitPython")
>>> bar = "git commit -m 'message'"
>>> beef = git.Git.execute(foo,bar)
Run Code Online (Sandbox Code Playgroud)
这显示错误,表示没有此类文件或目录.我也尝试了以下作为我的git目录的路径:
~/git/GitPython/.git
/Users/bacon/git/gitclient/
唯一的另一个选择是该命令是错误的,所以我尝试了:
commit -m "message"同样,仍然得到"没有这样的文件或目录".
我需要做些什么才能使这些git命令正常工作?
TFK*_*yle 12
我还没有尝试过验证,但似乎git.Git.execute需要一个命令行参数列表(如果你给它一个字符串,它将寻找一个完全匹配字符串,空格和一切的可执行文件 - 这自然不会'找到),所以这样的事情我认为会起作用:
import git
import os, os.path
g = git.Git(os.path.expanduser("~/git/GitPython"))
result = g.execute(["git", "commit", "-m", "'message'"])
Run Code Online (Sandbox Code Playgroud)
其他变化:
可能有比手动运行commit命令更精确的方法(我只是没有注意到任何快速查看源代码)因此我建议确保在执行此操作之前没有更高级别的方法